javascript - 如何在 JavaScript 中知道事件名称是否是自定义的?

标签 javascript dom

我如何知道一个事件是否是 JavaScript 中的 DOM/HTML 事件?

比方说,我有一个元素 <a> .我怎么知道 clickfocus是本地事件,但另一个像 mycustomevent不是吗?

例如,如果事件是原生的或自定义的,我想以不同的方式附加监听器:

var eventName; // can be 'foo', 'click' or 'touchstart';

var link = document.querySelector('a');
if(//custom){
    eventName += '.domain';
}
link.addEventListener(eventName, function (){ //... });

最佳答案

function isNativeEvent(eventname) {
    return typeof document.body["on" + eventname] !== "undefined";
}

这将检查事件处理程序是否在某个元素上定义(包括 null),这意味着它是 native 事件。

> isNativeEvent('click')
< true
> isNativeEvent('myCustomEvent')
< false

关于javascript - 如何在 JavaScript 中知道事件名称是否是自定义的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30297555/

相关文章:

javascript - HTMLCollection 困惑

Javascript/DOM,解析键/值字符串

运算符和事件中的 javascript

javascript - 如何使用 Javascript 在 div 中的文本之间创建可点击的范围

javascript - AmCharts - 折线图溢出图形容器

javascript - 如何编写只读取 xls 和 xlsx 格式的 excel 文件的验证函数

javascript - 根据输入范围更新显示的文本量

java - 如何从 XML 文档中删除/删除 DOCTYPE 声明?

javascript - 如何从 Node 中的 require 等命令将 babel 选项传递给 @babel/register

javascript - 在 beforeunload 事件处理程序中停止页面卸载