浏览网页和stackoverflow没有运气。
如何检查特定事件是否应用于特定元素之上。让我们说我这样做:
function addEvent(elem, event, fn) {
if (elem.addEventListener) {
elem.addEventListener(event, fn, false);
} else {
elem.attachEvent("on" + event, function() {
return(fn.call(elem, window.event));
});
}
}
addEvent(document, 'scroll', onScroll);
function onScroll() {console.log("scroll"}
如果我的事件绑定到文档,我如何动态检查?谢谢。
答案 0 :(得分:0)
你在JavaScript"中说过"所以我猜你想在代码中这样做,而不是(比如说)在调试器或其他东西。
DOM并没有提供这样做的方法,我很害怕,所以除了设置处理程序之外,你不能做任何事情。
例如,您可以在元素中添加一个expando属性,data-*
属性或类来标记它,以便稍后检查。
答案 1 :(得分:0)
你应该避免使用attachEvent
,即使在旧的IE浏览器中(< 9):如果你必须支持它们,那么使用on[event]
的事件系统的重新实现会更好properties - attachEvent有几个错误,例如上下文元素被破坏,侦听器的顺序是随机的等等。
说,您可以将event.target
与当前this
进行比较:
function onClick(event) {
if (event.target === this) {
console.log("original dispatcher");
} else {
console.log("inner elements")
}
}
document.body.addEventListener("click", onClick, false);
如果您使用document.body.onclick
设置侦听器,那也可以。