Twitter Bootstrap模式 – IsShown
您好,SO用户,
在我自动填充模态框的地方遇到了这个问题。
有时它已经有内容,所以我尝试在每个请求上进行隐藏/显示。 但该节目在隐藏function完成之前被触发,因此它会破坏脚本。
我无法绑定到“隐藏”,因为如果它是第一次 – 它将不会从引导程序中激活隐藏的函数。
使用modal(’true’)我可以看到该对象有一个isShown元素,但有谁知道我如何访问它?
console.log显示了这个:
$backdrop [div.modal-backdrop] $element [div#modal-from-dom.modal] isShown true settings Object { backdrop="static", keyboard=true, show=false} hide function() show function() toggle function() __proto__ Object { toggle=function(), show=function(), hide=function()}
Twitter Bootstrap 3的答案:
$("element").data()['bs.modal'].isShown
要么
$("element").data('bs.modal').isShown
答案是:
$("element").data('modal').isShown
在bootstrap 3.0.x上
$('#modal_Id').data().modal.isShown
要么
$('#modal_Id').data('modal').isShown
modal_id是模态的id
如果你想要一个Bootstrap版本2 和 3的解决方案而不想点击data
(因为看起来这个名称已经改变了一次)……
$(element).hasClass('in')
(将“淡入”或“可见”;加上它返回一个布尔值)
要么
"false" === $(element).attr('aria-hidden')
(这样的咏叹调隐藏或可见。 "true"
隐藏在这种情况下。)
请参阅bootstrap 3.3.1中的source :
this.backdrop(function () { ... that.$element .addClass('in') .attr('aria-hidden', false) ...
同样,该代码来自3.3.1。 可以确认这也适用于2.1.0。 在这种情况下,鸭子嗅[sic]可能更好。
Bootstrap 4的答案:
$("element").data('bs.modal')._isShown
作为一个function:
function isModalShown(modal) { var modalIsShown = (modal.data('bs.modal') || {})._isShown; return !(typeof modalIsShown === 'undefined' || !modalIsShown); }