javascript - 如何使 Bootstrap 模式窗口在再次单击外部时关闭?

标签 javascript jquery html twitter-bootstrap bootstrap-modal

我正在使用 bootstrap 框架的项目中工作,我读到有不同的方法来打开模式窗口,在我的例子中,我使用以下代码使用 javascript 打开它:

$('#formVenta').modal({backdrop: 'static', keyboard: false});

我这样做是因为客户要求我避免在单击外部时关闭模式,但现在他想按外部单击并再次关闭模式,但当我的窗口内的特定 div 内没有内容时

<div id="content_goes_here"></div>

我觉得可以这样解决

$(document).click(function(e) {

        //check if modal is open
        if ($('#formVenta').is(':visible')) {

            //check if div has content
            if ($('#content_goes_here').html().length > 0) {

                //do something
            }
        }
    });

我看到的问题是 div 之外有文本输入如果我想搜索某些内容,当我单击输入时它会关闭,因为 div 内还没有内容我想避免这个问题。

有没有一种方法,只有当我在模态窗口之外单击时,才检查 div 是否存在是空的并与我在这种情况下打开窗口的方式相反吗?

$('#formVenta').modal({backdrop: 'static', keyboard: false});

例如更改属性 backgrop 的值.

希望您能帮助我,谢谢。

最佳答案

抱歉,花了一段时间才找到合适的属性,但这是最好的例子

$('#formVenta').data('bs.modal').options.backdrop = false;$('#formVenta').data('bs.modal').options.backdrop = static;

您可以通过执行以下操作来查看您设置的当前属性 alert(JSON.stringify($('#myModal3').data('bs.modal').options)); 或将警报更改为 console.log()

因此您可以在 div 上放置一个事件,以便当它更改时运行验证函数,并且在验证函数内部您可以使用上面的代码更改模式的选项

关于javascript - 如何使 Bootstrap 模式窗口在再次单击外部时关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46161620/

相关文章:

javascript - 如何在 jwindowcrop 中重新设置裁剪框的宽度和高度?

javascript - 原型(prototype)属性抛出未定义

python - Django 帖子和回复

javascript - 一旦 js 缓存在浏览器中,MathJax 就会停止工作

javascript - 根据选择选项显示/隐藏 div

javascript - WordPress:悬停不起作用时尝试显示子菜单

javascript - jQuery:检查一个对象是否有类

javascript - 拉斐尔圆圈内的文字

javascript - 如何在 ajax 请求期间将头部的图标更改为 "loading"?

javascript - 如何在不将 javascript 嵌入到 html 中的情况下使用 onkeypress?