jquery:如果在div内部,请点击鼠标
我有这个HTML页面
a b c d e f
a,b,c,d,e和f可以是div而不仅仅是纯文本。
我想获得鼠标点击事件,但我怎么知道它是在#in_or_out div的内部还是外部?
编辑::伙计们,我知道如何检查div是否点击,但我希望我的事件在点击超出该div时被触发
$("body > div").click(function() { if ($(this).attr("id") == "in_or_out") { // inside } else { // not inside } });
编辑:刚学会,有否定:
$("body > div:not(#in_or_out)").click(function(e) { // not inside });
如果要检测是否已在div内部或外部单击,请在documentElement
上设置事件处理程序,并让它从其他元素向上传播:
$("html").click(function (e) { if (e.target == document.getElementById("in_or_out")) alert("In"); else alert("Out!"); });
也许这个会帮助你
$('body').click(function(){ //do smth }); $('div#in_or_out').click(function(e){ e.stopPropagation(); // do smth else });
取决于你想要的。 如果你只想执行代码,当它在 #in_or_out
,你可以这样做:
$('#in_or_out').click(function(){ /* your code here */ });
您可以拥有一个状态变量,指出鼠标是否在#in_or_out
:
var inside = false; $('#in_or_out').hover(function() { inside = true; }, function() { inside = false; });
然后,每当发生单击时,您可以在inside
检查点击是否在in_or_out
内。
参考: .hover()
更新:
无论您绑定click
处理程序的哪个元素,您始终可以执行以下操作:
$('element').click(function() { if ($(this).attr('id') !== 'in_or_not') { } });
对于里面它会
$("#in_or_out").click(function() { // do something here });
外面……我不知道。
编辑:您可以尝试对body-tag执行相同操作(将click-handler分配给文档本身)。 但是我不确定这两件事是否会引发。
像这样?
$("#in_or_out").click(function() { alert("IN DIV!"); });