标题总结了它。
我只想隐藏#test,而不是#test或其子项被点击。
答案 0 :(得分:8)
您可以在此处使用event bubbling,例如:
$("#test").click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$("#test").hide();
});
如果点击来自 #test
内的,则会停止通过event.stopPropagation()
冒泡,如果它来自click
将会(默认情况下)冒泡的任何地方一直到document
,其.click()
处理程序隐藏#test
。
答案 1 :(得分:0)
可能是这样的:
// http://api.jquery.com/delegate/
// http://api.jquery.com/not-selector/
$("body").delegate("*:not(#test)", "click", function () {
$("#test").hide(); // But would be better to cache $("#test") !
});