你好,SO用户,
我自动填充模态框时出现此问题。
有时它已经有了内容,所以我尝试在每个请求上进行隐藏/显示。 但该节目在隐藏功能完成之前被触发,因此它会破坏脚本。
我无法绑定到“隐藏”,因为如果它是第一次 - 它不会从bootstrap中激活隐藏的函数。
使用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()}
答案 0 :(得分:25)
回答Twitter Bootstrap 3:
$("element").data()['bs.modal'].isShown
或强>
$("element").data('bs.modal').isShown
答案 1 :(得分:10)
答案是:
$("element").data('modal').isShown
答案 2 :(得分:3)
在bootstrap 3.0.x上
$('#modal_Id').data().modal.isShown
或
$('#modal_Id').data('modal').isShown
modal_id是你的模态的ID
答案 3 :(得分:1)
如果你想要一个Bootstrap版本2 和 3解决方案,而不想点击data
(因为它看起来已经是名字了改变了一次)...
$(element).hasClass('in')
("褪色"或"可见&#34 ;;加上它返回布尔值)
或
"false" === $(element).attr('aria-hidden')
(以便隐藏或显示咏叹调。"true"
隐藏在这种情况下。)
请参阅source from bootstrap 3.3.1 here:
this.backdrop(function () {
...
that.$element
.addClass('in')
.attr('aria-hidden', false)
...
同样,该代码来自3.3.1。可以确认这也适用于2.1.0。在这种情况下,鸭子嗅[sic]可能更好。
答案 4 :(得分:0)
回答Bootstrap 4:
$("element").data('bs.modal')._isShown
作为一项功能:
function isModalShown(modal) {
var modalIsShown = (modal.data('bs.modal') || {})._isShown;
return !(typeof modalIsShown === 'undefined' || !modalIsShown);
}