我對這個JQuery函數有點麻煩。hide div如果點擊它之外
基本上,我有一個div,點擊時顯示另一個div。它實際上設置爲切換,因此當您點擊時它會打開/關閉。
我想要它在哪裏,如果你點擊打開的div以外的任何地方(單擊第一個div後出現),打開的div將關閉。
$("#idSelect").click(function() {
$("#idDiv").toggle();
});
我對這個JQuery函數有點麻煩。hide div如果點擊它之外
基本上,我有一個div,點擊時顯示另一個div。它實際上設置爲切換,因此當您點擊時它會打開/關閉。
我想要它在哪裏,如果你點擊打開的div以外的任何地方(單擊第一個div後出現),打開的div將關閉。
$("#idSelect").click(function() {
$("#idDiv").toggle();
});
編輯:更好的方法在這裏:
How to create a custom modal popup - and how to close it clicking outside of it
$("#idSelect").click(function(e) {
e.stopPropagation();
$("#idDiv").toggle();
});
$("#idDiv").on('click',function(e) {
e.stopPropagation();
});
$(document).on('click', function(e) {
if(e.target.id != 'idDiv'){
$("#idDiv").hide();
}
});
希望這有助於:
$(document).click(function() {
if($(window.event.target).attr('id') != 'idSelect')
$("#idDiv").hide();
});
$(document).on("click",function(e) {
if ($(e.target).is("#idDiv, #idDiv *"))
$("#idDiv").show();
else
$("#idDiv").hide();
});
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
變化'$( 「#idDiv」)切換();''到.hide()'否則點擊任何元素都會切換div –
@Zoltan Toah:YOu是正確的 –