jac*_*per 15 html javascript jquery
使用jQuery如何检测不是特定元素的点击,并因此执行操作?
我有以下JavaScript
$('#master').click(function() {
$('#slave').toggle();
});
$(document).not('#master','#slave').click(function() {
$('#slave').hide();
});
Run Code Online (Sandbox Code Playgroud)
而且我无法从逻辑上看出我的错误.你可以在这里看到一个实例
Fré*_*idi 39
由于您绑定到click文档上的事件,因此可以使用event.target来获取启动事件的元素:
$(document).click(function(event) {
if (!$(event.target).is("#master, #slave")) {
$("#slave").hide();
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:正如Mattias在他的评论中正确地指出的那样,上面的代码将无法识别来自#master和#slave(如果有的话)的后代的点击事件.在这种情况下,您可以使用nearest()来检查事件的目标:
$(document).click(function(event) {
if (!$(event.target).closest("#master, #slave").length) {
$("#slave").hide();
}
});
Run Code Online (Sandbox Code Playgroud)