2012-11-22 78 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

相關問題