Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果在div之外单击,则隐藏div_Javascript_Jquery - Fatal编程技术网

Javascript 如果在div之外单击,则隐藏div

Javascript 如果在div之外单击,则隐藏div,javascript,jquery,Javascript,Jquery,这个JQuery函数有点问题 基本上,我有一个div,当点击时,它会显示另一个div。实际上,它被设置为一个切换,所以当你点击时它会切换开/关 如果你点击打开的div之外的任何地方(点击第一个div后出现),打开的div就会关闭 $("#idSelect").click(function() { $("#idDiv").toggle(); }); 希望这有助于: $(document).click(function() { if($(window.event.target).att

这个JQuery函数有点问题

基本上,我有一个div,当点击时,它会显示另一个div。实际上,它被设置为一个切换,所以当你点击时它会切换开/关

如果你点击打开的div之外的任何地方(点击第一个div后出现),打开的div就会关闭

$("#idSelect").click(function() {
   $("#idDiv").toggle();
});
希望这有助于:

$(document).click(function() {
   if($(window.event.target).attr('id') != 'idSelect')
       $("#idDiv").hide();
});

编辑:这里有更好的方法:

插件增加了对以下事件的支持

单击外部、DBL单击外部、聚焦外部、模糊外部, 鼠标移动到外侧,鼠标移动到外侧,鼠标移动到外侧,鼠标移动到外侧, 鼠标向外移动、按键向外移动、按键向外移动、按键向外移动、, changeoutside,选择Outside,SubmitToutSide

适用于你的情况,你可以这样做

    $("#idDiv").on("clickoutside", function( ) {
        $("#idDiv").hide();
    });

    $("#idSelect").on("click", function( e ) {
        $("#idDiv").toggle();
        e.stopPropagation();
    });

演示

Change
$(“#idDiv”).toggle()
.hide()
否则单击任何元素都将切换div@Zoltan托阿:你说得对
$(document).on("click",function(e) {
   if ($(e.target).is("#idDiv, #idDiv *"))
       $("#idDiv").show();
   else
       $("#idDiv").hide();
});
    $("#idDiv").on("clickoutside", function( ) {
        $("#idDiv").hide();
    });

    $("#idSelect").on("click", function( e ) {
        $("#idDiv").toggle();
        e.stopPropagation();
    });