隐藏叠加层时,Javascript会阻止底层点击

时间:2015-08-10 15:37:50

标签: javascript jquery html

我制作的应用程序可以在具有div的桌面和移动设备上运行,当用户点击或点击它隐藏的div之外时。这个div是在其他元素之上的,我遇到的问题是当用户点击它隐藏的div之外时,但它也会在它下面的元素上执行click事件。调用mousedown事件时,此功能在桌面上正常工作。我添加的代码是:

$(document).on( "mousedown touchstart", function(e){
    if (isSearchOpen) {
        if (!$(searchContainer).is(e.target) && $(searchContainer).has(e.target).length === 0) {
            $('input[name=q]','form[name=searchFormMobile]').val('');
            $('input[name=q]','form[name=searchForm]').val('');
            $(searchOverlay).hide();
            isSearchOpen = false;
        }
    }
});

我尝试在第二个e.preventDefault()内调用e.stopPropagation()return false;if-statement,但这些都不起作用。这个弹出窗口可以出现在多个"页面"所以我想避免尝试捕获任何可以点击的元素并尽可能以这种方式处理这个问题。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您可以尝试向您的div添加模糊事件。每当用户点击或点击div之外时,事件就会触发。

https://developer.mozilla.org/en-US/docs/Web/Events/blur

答案 1 :(得分:0)

使用echo "${file//[!0-9]/ }"|xargs|cut -d' ' -f1 100附加全屏宽度和高度的透明div,并为out_int=$((out))添加z-Index为101.对于覆盖{{1}上的Onclick事件,从DOM中删除两个DIV。仅供参考,jquery-Ui模式对话框也是如此。 ;)