2012-11-22 39 views
2

我对这个JQuery函数有点麻烦。hide div如果点击它之外

基本上,我有一个div,点击时显示另一个div。它实际上设置为切换,因此当您点击时它会打开/关闭。

我想要它在哪里,如果你点击打开的div以外的任何地方(单击第一个div后出现),打开的div将关闭。

$("#idSelect").click(function() { 
    $("#idDiv").toggle(); 
}); 

回答

1

希望这有助于:

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

变化'$( “#idDiv”)切换();''到.hide()'否则点击任何元素都会切换div –

+0

@Zoltan Toah:YOu是正确的 –

0
$(document).on("click",function(e) { 
    if ($(e.target).is("#idDiv, #idDiv *")) 
     $("#idDiv").show(); 
    else 
     $("#idDiv").hide(); 
}); 
1

jQuery-outside-events插件增加了对以下事件

clickoutside,dblclickoutside,focusoutside,bluroutside, mousemoveoutside为mouseDownOutside,mouseupoutside,mouseoveroutside, mouseoutoutside,keydownoutside,keypressoutside,keyupoutside, 支持更换外部,选择外部,提交外部。

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

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

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

演示here

相关问题