我有一个div,当你点击它时,使用toggle()并显示并隐藏按钮下方的列表div。我想要它,以便当你点击页面上的任何地方(而不是在那个div *)时它会关闭。我意识到这不适用于切换。有人可以指出我正确的方向。
我想点击一个按钮,而不是再次点击该按钮关闭我希望能够在任何地方点击并关闭的div。
答案 0 :(得分:5)
您可以阻止click
事件冒泡,如下所示:
$("#divID, #buttonID").click(function(e) {
e.stopPropagation();
});
$(document).click(function() {
$("#divID").hide();
});
使用event.stopPropagation()
点击“按钮”(似乎是另一个<div>
?)或来自div的点击不会bubble up to document
,其他地方将 ...当click
到达那里时,它将关闭<div>
。因此,<div>
外部的点击会关闭,内部点击不会发生任何事情。
答案 1 :(得分:1)
return false是你的朋友,它会阻止默认行为,否则单击按钮或div时会触发文档点击事件。
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("button").click(function () { $("div").toggle(); return false; });
$(document).click(function () { $("div").hide(); });
$("div").click(function () { return false; });
});
</script>
</head>
<body>
<button>Toggle me!</button>
<div style="height: 400px; width: 400px; background: red;"></div>
</body>
答案 2 :(得分:-1)
$("*").not("#specialDiv").click(function() {
$('#specialDiv').hide();
})