[我试图捕获将DOM冒泡到主体的click事件,检查一下click元素的选择器是什么,然后基于此选择调用函数。
类似这样的东西:
<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 {
}
});
我意识到我在这种情况下不完全了解事件冒泡,并且上面的代码不正确,所以我正在寻求社区的指导。
在您的语句中,您的this
指代您将事件绑定到的元素。在这种情况下,身体元素。因此,if语句永远不会为真。
因此,要获取您实际单击的元素,需要检查事件对象中的目标。像下面这样的东西应该起作用。
$('body').bind('click', function(event) {
if ($(event.target).attr('id') == 'do-override-code')) {
overrideCode();
} else {
}
});
您需要在函数中传递事件并检查事件。
此链接提供了您可能想知道的http://www.quirksmode.org/js/events_properties.html的所有信息,例如
哪个HTML元素是事件的目标?
您可以从中轻松提取所需的任何语义信息