当用户在其外部单击时,使用jquery隐藏自定义模态

时间:2016-09-05 17:20:18

标签: javascript jquery css twitter-bootstrap

重复:

是的。下面是我在堆栈溢出时搜索的引用。

Reference 1

Reference 2

Reference 3

Reference 4

我在寻找什么:

实际上我在不使用bootstrap的情况下制作自定义模态。总体而言,我的代码工作正常,下面是它的实例:

$(window).click(function(e){
    let classname = e.target.className;
    if(classname == "ah-modal-wrapper") {
    e.target.style.display = 'none';
    }
});

Fiddle

问题是,当我选择模态的内部文本并从模态中释放我的选择时,隐藏/关闭模态。但我需要的是当我点击模态外,然后模态应该立即关闭。哪个工作正常。但是我不想让模态关闭,同时从模态中释放鼠标点击。

如需更多清关,请查看以下示例:

Bootstrap Modal Example

2 个答案:

答案 0 :(得分:1)

这是工作代码:

$('.ah-modal-wrapper').on('mousedown', function(e) {    
    $(this).hide();
});

$('.ah-modal').on('mousedown', function(e){
    e.stopPropagation();
});

同时更新jsfiddle

答案 1 :(得分:0)

以下是我自己问题的代码(答案)。

let istextSelected = false;
    $(window).click(function(e){
        let classname = e.target.className;
        if(classname == "ah-modal-wrapper") {
            if(istextSelected == false) {
                e.target.style.display = 'none';
            }
        istextSelected = false;
    }
});

$(".ah-modal").on('mousedown',function(e){
   istextSelected = true;
});

Fiddle