我正在尝试捕获将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 {
}
});
我意识到在这种情况下我并不完全理解事件冒泡,而且上面的代码不正确,所以我期待社区的指导。
答案 0 :(得分:2)
在您的陈述中,您的this
指的是您将事件绑定到的元素。在这种情况下,身体元素。因此,if语句永远不会成立。
因此,要获取实际单击的元素,需要检查事件对象中的目标。像下面这样的东西应该工作。
$('body').bind('click', function(event) {
if ($(event.target).attr('id') == 'do-override-code')) {
overrideCode();
} else {
}
});
答案 1 :(得分:0)
您需要在函数中传递事件并检查事件。
此链接提供了您可能想要了解的所有信息http://www.quirksmode.org/js/events_properties.html,例如
哪个HTML元素是事件的目标?
您可以从中轻松提取您想要的任何语义信息