jquery事件问题!!对象 click和document click冲突问题
我想点击某个元素显示一个对象, 点击页面任意处,隐藏这个对象
//点击look对象,显示隐藏mydiv
$("#look").bind("click", function () {
$("#mydiv").toggle();
})
//点击任意地方,隐藏显示的mydiv
$(document).bind("click", function () {
if ($("#mydiv").css("display") == "block") {
$("#mydiv").hide();
}
})
这样两个事件冲突了,点击look对象,不会显示mydiv
[解决办法]
防止点击事件冒泡 return false;
[解决办法]
不是冲突。。是冒泡了,,
$("#look").bind("click", function (e) {
$("#mydiv").toggle();
e.stopPropagation
})
试试
[解决办法]
- JScript code
$("#look").bind("click", function () { $("#mydiv").toggle(); return false; })
[解决办法]
- HTML code
$(document).bind("click", function (e) { if ($(e.target).is('#test')) return; else{ if ($("#mydiv").css("display") == "block") { $("#mydiv").hide(); } } })
[解决办法]
e.stopPropagation
是这个
[解决办法]
[解决办法]
- JScript code
$("#look").bind("click", function () { $("#mydiv").toggle(); event.stopPropagation(); })
[解决办法]
[解决办法]
return false就好了.
- JScript code
<html><head><script type="text/javascript" src="/jquery/jquery.js"></script><script type="text/javascript">$(document).ready(function(){ $("p").click(function(){ $(this).hide(); });$("#look").bind("click", function () { $("#mydiv").toggle();return false; })//点击任意地方,隐藏显示的mydiv $(document).bind("click", function () { if ($("#mydiv").css("display") == "block") { $("#mydiv").hide(); } })});</script></head><body><div id='look'> click</div><div id="mydiv"><p>If you click on me, I will disappear.</p></div></body></html>
[解决办法]
- JScript code
$(function(){$("#look").click(function (e) { $("#mydiv").show(); return false; });//点击任意地方,隐藏显示的mydiv $(document).click(function () { $("#mydiv").hide(); });});