我正在使用Twitter引导创建一个模态窗口。默认的行为是,如果你点击模式区域之外,模式将自动关闭。我想禁用,即不关闭模式窗口时,点击模式之外。
有人可以分享jQuery代码来做到这一点吗?
我正在使用Twitter引导创建一个模态窗口。默认的行为是,如果你点击模式区域之外,模式将自动关闭。我想禁用,即不关闭模式窗口时,点击模式之外。
有人可以分享jQuery代码来做到这一点吗?
当前回答
如果你想有条件地禁用背景单击关闭功能。您可以使用下面的行在运行时将背景选项设置为静态。
引导v3.xx
jQuery('#MyModal').data('bs.modal').options.backdrop = 'static';
引导v2.xx
jQuery('#MyModal').data('modal').options.backdrop = 'static';
这将防止已经实例化的模型将背景选项设置为false(默认行为)关闭。
其他回答
如果有人从谷歌来到这里,试图找出如何阻止某人关闭一个模式,不要忘记,在模式的右上方还有一个关闭按钮,需要删除。
我用一些CSS来隐藏它:
#Modal .modal-header button.close {
visibility: hidden;
}
注意,使用"display: none;"会在创建模态时被覆盖,所以不要使用它。
只需为背景设置静态选项(背景:'static')。为了防止在键盘上按Esc键关闭模式,你必须将键盘选项设置为false(键盘:false)
所以,代码将是。
var jq = jQuery.noConflict();
jq(document).ready(function(){
jq('#exampleModal').modal({backdrop: 'static', keyboard: false});
});
如果你想有条件地禁用背景单击关闭功能。您可以使用下面的行在运行时将背景选项设置为静态。
引导v3.xx
jQuery('#MyModal').data('bs.modal').options.backdrop = 'static';
引导v2.xx
jQuery('#MyModal').data('modal').options.backdrop = 'static';
这将防止已经实例化的模型将背景选项设置为false(默认行为)关闭。
大雄的答案适用于单一情况,但我在一个旧网站上有20-30个情态动词,正在寻找一个答案,为每个用bootstrap打开的情态动词设置这个。
您可以针对模式的事件名称空间,并为每个引导模式添加默认设置。
你可能不想对每个模式都这样做,但如果你这样做了,就没有必要静态地指定每个模式调用。
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
var $this = $(this)
var href = $this.attr('href')
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data(), {backdrop: 'static', keyboard: false})
e.preventDefault()
$target
.modal(option)
.one('hide', function () {
$this.focus()
})
})
在我的例子中,我在选项结构中添加了{background: 'static', keyboard: false}。
我发现最好的是把这个代码添加到链接中
<!-- Link -->
<a href="#mdl" role="button" data-backdrop="static" data-keyboard="false" data-toggle="modal" id_team="" ></a>
<-- Div -->
<div id="mdl" class="modal hide fade" tabindex="-1" role="dialog" data-keyboard="false" data-backdrop="static"></div>