有人可以帮我这个吗?:
我有一个按钮,当点击它显示一个特定的div.这个div有几个后代.现在,我想要的是当我点击文档中的其他位置时,但不会在任何后代中单击此div消失.我认为使用not选择器是这样的:
$("#button").click(function(){
$("#mydiv").show();
$(document.body).not($("#mydiv").children()).one('click',function(e) {
$("#mydiv").hide();
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用!知道为什么吗?谢谢
Top*_*gio 15
如何检查点击事件以查看点击的内容?具体来看看event.target
.
$(document).click(function(event) {
var target = $(event.target);
if (!target.attr('id').match(/^mydiv/) && target.parents('#mydiv').length == 0) {
$('#mydiv').hide();
}
});
Run Code Online (Sandbox Code Playgroud)
我之前使用过这段代码来关闭一个打开的窗口,当有人点击窗口以外的任何地方.
使用最近的检查目标是否是后代mydiv
.
$("#button").click(function(){
$("#mydiv").show();
$(document.body).click(function() {
if ($(event.target).closest("#mydiv").length == 0)
$("#mydiv").hide();
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
您无法使用,one()
因为如果您单击内部事件将被删除mydiv
.如果要删除它,则必须执行一些自定义事件解除绑定.