gpt4 book ai didi

jquery - 如何通过点击背景关闭模式(Twitter Bootstrap)

转载 作者:行者123 更新时间:2023-12-03 22:32:47 25 4
gpt4 key购买 nike

您好,我将 Twitter Bootstrap 模式的默认设置设置为当用户单击背景时不关闭

$.fn.modal.defaults = {
backdrop: 'static'
, keyboard: false
, show: false
}

但是,有一种特殊情况,我需要覆盖此默认值以允许用户单击背景来关闭模式。

我试图在显示特定模式时覆盖它

//Modal to be displayed and allow user to close it by clicking on background
view = new Onethingaday.Views.Muses.MuseModalView
model: @options.muse

$('.modal').html view.render().el
$('.modal').bind 'shown', =>
$('.modal').modal
'backdrop': true
('.modal').unbind 'show'
$('.modal').modal('show')

但是,我上面的代码不起作用。任何人都知道如何修改代码以使其工作。另外,上面的代码似乎正在更改应用程序中所有模态的默认行为,这不是我想要的。如何仅更改此特定模式(即 MuseModalView)的背景?谢谢!

最佳答案

我今天也遇到了类似的问题。首先,我发现了这个讨论:https://github.com/twitter/bootstrap/issues/1202 。有人建议将 isShown 设置为 false,以防止模态窗口在背景单击时关闭:

$('myelement').data('modal').isShown = false

我不能说我喜欢这个黑客,特别是当我发现模式窗口在单击“确定”/“取消”按钮时无法正确关闭 - 而 isShown 设置为 false 时。我找不到更好的解决方案,所以我这样做了:我设置全局默认背景:“static”(禁用背景单击时关闭)并添加以下代码:

  $('#myModal').on('shown', function () {
$("div.modal-backdrop").on('click', function() {
if(myCondition == true) {
$('#myModal').modal('hide');
}
})
});

具有类 modal-backdrop 的 div 在模态窗口打开时动态附加到主体,并在关闭时删除 - 对于每个模态窗口。这意味着如果我们堆叠模态窗口,我们应该确保正确处理这个问题。所以,我稍微调整了一下上面的代码:

  $('#myModal').on('shown', function () {
$("div.modal-backdrop").each(function(){
if($(this).data('wired') !== 'true'){
$(this).on('click', function() {
if(myCondition == true){
$('#myModal').modal('hide');
}
}).data('wired', true);
}
})
});

仅当 myCondition 为 true 时,此代码才应关闭模式窗口。它应该对我有用,我希望这也能帮助您和其他遇到类似问题的人。

关于jquery - 如何通过点击背景关闭模式(Twitter Bootstrap),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com