事件冒泡和 jQuery

发布于 2024-10-12 11:51:31 字数 491 浏览 7 评论 0原文

我试图捕获一个将 DOM 冒泡到主体的点击事件,检查点击元素的选择器是什么,然后基于此选择调用一个函数。

像这样的东西:

<body>
    <a id="do-default-code">Default code</a>
    <a id="do-override-code">Override code</a>
</body>

我正在想象(伪代码)像这样。我正在使用 jQuery:

$('body').bind('click', function() {
    if ($(this) === $('#do-override-code')) {
        overrideCode();
    } else {

    }
});

我意识到我不完全理解这种情况下的事件冒泡,并且上面的代码不正确,因此我正在向社区寻求指导。

I'm trying to capture a click event that bubbles up the DOM to the body, check to see what the selector of the click element is, and then based on that, choose to call a function.

Something like this:

<body>
    <a id="do-default-code">Default code</a>
    <a id="do-override-code">Override code</a>
</body>

And I'm picturing (psuedo-code) like this. I am using jQuery:

$('body').bind('click', function() {
    if ($(this) === $('#do-override-code')) {
        overrideCode();
    } else {

    }
});

I realize that I don't fully understand event bubbling in this context, and that the above code is not correct, so I am looking to the community for guidance.

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

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

发布评论

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

评论(2

太傻旳人生 2024-10-19 11:51:31

在您的语句中,您的 this 指的是您已将事件绑定到的元素。在本例中为 body 元素。因此 if 语句永远不会为真。

因此,要获取您实际单击的元素,您需要检查事件对象中的目标。像下面这样的东西应该有效。

$('body').bind('click', function(event) {
    if ($(event.target).attr('id') == 'do-override-code')) {
        overrideCode();
    } else {

    }
});

In your statement your this refers to the element that you have bound the event to. In this case the body element. Thus the if statement is never true.

So to get the element that you have actually clicked on you need to examine the target in the event object. Something like the following should work.

$('body').bind('click', function(event) {
    if ($(event.target).attr('id') == 'do-override-code')) {
        overrideCode();
    } else {

    }
});
转身泪倾城 2024-10-19 11:51:31

您需要在函数中传递事件并检查该事件。

此链接提供了您可能想了解的所有信息 http://www.quirksmode.org/js/ events_properties.html 例如

哪个 HTML 元素是事件的目标?

您可以从中轻松提取您想要的任何语义信息

You'll need to pass in the event on your function and check the event.

This link gives all the information you could want to know http://www.quirksmode.org/js/events_properties.html such as

Which HTML element is the target of the event?

from which you can easily extract whatever semantic info you wanted

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