首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jquery:无论是否在div中,都会单击鼠标

jquery:无论是否在div中,都会单击鼠标
EN

Stack Overflow用户
提问于 2010-02-15 18:37:56
回答 4查看 33.9K关注 0票数 16

我有这个HTML页面

代码语言:javascript
复制
<html>
<body>
<div>a</div>
<div>b</div>
<div>c</div>
<div>d</div>
<div id='in_or_out'>e</div>
<div>f</div>
</body>
</html>

a、b、c、d、e和f也可以是div,而不仅仅是纯文本。

我想得到鼠标点击事件,但是我怎么知道它是在#in_or_out目录的内部还是外部呢?

编辑::伙计们,我知道如何检查div是否被单击,但我希望在单击位于该div之外时触发事件

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-15 18:43:51

代码语言:javascript
复制
$("body > div").click(function() {
    if ($(this).attr("id") == "in_or_out") {
        // inside
    } else {
        // not inside
    }
});

编辑:刚刚了解到,有一个否定:

代码语言:javascript
复制
$("body > div:not(#in_or_out)").click(function(e) {
    // not inside
});
票数 24
EN

Stack Overflow用户

发布于 2010-02-15 18:43:54

如果您想要检测您是否在div内部或外部单击,请在documentElement上设置事件处理程序,并让它从其他元素向上传播:

代码语言:javascript
复制
$("html").click(function (e)
{
    if (e.target == document.getElementById("in_or_out"))
        alert("In");
    else
        alert("Out!");
});
票数 9
EN

Stack Overflow用户

发布于 2010-02-15 18:57:27

也许这个会对你有帮助

代码语言:javascript
复制
$('body').click(function(){
    //do smth
});
$('div#in_or_out').click(function(e){
    e.stopPropagation();
    // do smth else
});
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2265297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档