如何使用javascript检查事件是否应用于元素
How to check if event is applied on an element with javascript?
浏览网页并堆叠失败。
如何检查特定事件是否应用于特定元素之上。假设我是这样做的:
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"}
如何动态检查我的事件是否绑定到文档?非常感谢。
您已经说过"在JavaScript中",所以我猜您想在代码中这样做,而不是在调试器或其他什么中。
恐怕DOM没有提供这样做的方法,所以除了设置处理程序之外,您还必须做一些事情。
例如,您可以将expando属性、data-*
属性或类添加到元素中以对其进行标记,以便稍后进行检查。
您应该避免使用attachEvent
,即使是在旧的IE浏览器中(<9):如果必须支持它们,最好使用使用on[event]
属性的事件系统的重新实现–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
来设置侦听器,这也是有效的。
相关文章:
- 将函数的上下文应用于javascript变量
- 将CSS应用于printWindow.print();在Javascript中
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- ResolveUrl是否适用于././也
- $scope.apply()何时应用于angular
- Javascript非常简单:'阅读更多''显示较少'应用于Wordpress的功能
- 是否有用于加载外部脚本的JavaScript库
- 尝试应用于<tr>在ng单击中
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 将脚本应用于Angular 2上的输入
- Json和$scope的角度之间的差异$eval应用于JSON字符串时
- 如何将参数应用于String.prototype.format函数
- 动态地将过滤器应用于 JSON.parse()
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- $location更改不适用于ngchange,而是应用于ngclick
- 如何将 :empty 选择器应用于 XML 文档
- 是否有用于CSS浏览器支持新功能的javascript解决方案
- 是否可以将Phaser物理应用于tile sprite的滚动位置?
- HTML5 contentEditable检查格式是否应用于execCommand
- 是否“;运行到完成”;应用于iframe内的代码