尝试使用 jQuery 定位特定的 DIV

发布于 2024-11-03 00:52:44 字数 250 浏览 0 评论 0原文

看似简单的问题却很难解决。

我有一个 DIV 包装器,其 z 索引低于包装器内的 DIV。 (基本上是一个上面有 DIV 的背景)

当我在包装器和 DIV 上运行 console.log() 时,我注意到当我单击包装器时,它只记录包装器的单击。

但是,当我单击包装器内的 DIV 时,它会同时记录包装器和 DIV 的单击。

我到底该如何设置,以便当我单击包装器内的 DIV 时,它只会注册对该 DIV 而不是包装器的单击?

Simple problem with what seems to be an incredibly difficult solution.

I have a DIV wrapper with a z-index that is lower than a DIV that is inside the wrapper. (basically a background with a DIV on top of it)

When I run the console.log() on the wrapper, and the DIV, I notice that when I click on the wrapper it only logs the click for the wrapper.

But when I click on the DIV inside the wrapper, it logs clicks for both the wrapper and the DIV at the same time.

How the heck do I set this up so that when I click on the DIV inside the wrapper, it will only register a click for that DIV and not the wrapper as well??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

百合的盛世恋 2024-11-10 00:52:44

扩展杰夫的答案,这里有一些基本的示例代码:

<style type="text/css">
    div {width:100px;height:100px;}
    #parent {padding:50px;background-color:black}
    #child {background-color:yellow}
</style>

<script type="text/javascript">
    $(function () {
        $('div').click(function (event) {
            if ($(this).parents('div')) {
                event.stopPropagation();
            }
            console.log($(this).attr('id'));
        });
    });
</script>

<div id="parent">
    <div id="child"></div>
</div>

Expanding on Jeff's answer, here's some basic sample code:

<style type="text/css">
    div {width:100px;height:100px;}
    #parent {padding:50px;background-color:black}
    #child {background-color:yellow}
</style>

<script type="text/javascript">
    $(function () {
        $('div').click(function (event) {
            if ($(this).parents('div')) {
                event.stopPropagation();
            }
            console.log($(this).attr('id'));
        });
    });
</script>

<div id="parent">
    <div id="child"></div>
</div>
胡渣熟男 2024-11-10 00:52:44

您将需要使用 stopPropagation。有关详细信息,请参阅此内容:

event.preventDefault() 与 return false

You'll want to use stopPropagation. See this for more info:

event.preventDefault() vs. return false

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文