Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中知道事件名称是否为自定义?_Javascript_Dom - Fatal编程技术网

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

如何在JavaScript中知道事件名称是否为自定义?,javascript,dom,Javascript,Dom,如何知道事件在JavaScript中是否是DOM/HTML事件 比方说,我有一个元素。我怎么知道click或focus是本机事件,而另一个类似mycustomevent的则不是 例如,如果事件是本机事件或自定义事件,我希望以不同的方式附加侦听器: var eventName; // can be 'foo', 'click' or 'touchstart'; var link = document.querySelector('a'); if(//custom){ eventName

如何知道事件在JavaScript中是否是DOM/HTML事件

比方说,我有一个元素
。我怎么知道
click
focus
是本机事件,而另一个类似
mycustomevent
的则不是

例如,如果事件是本机事件或自定义事件,我希望以不同的方式附加侦听器:

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

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

此处列出了Javascript本机事件:,因此,如果您使用的事件不在列表中,则它是一个自定义事件

function isNativeEvent(eventname) {
    return typeof document.body["on" + eventname] !== "undefined";
}
这将检查事件处理程序是否在某个元素上定义(包括
null
),这意味着它是本机事件

> isNativeEvent('click')
< true
> isNativeEvent('myCustomEvent')
< false
>isNativeEvent('click')
iNativeEvent('myCustomEvent')
您可以阅读文档。检查原型上是否存在该事件将区分新分配的事件和原型事件。。。(当然,您或其他人可能已经更改了原型本身;这将使该方法无效。)什么是
attachEventListener
?在自定义事件中添加一个变量,并检查该变量是否存在。。每个nativ事件都不应该有这个变量。@Justinas是的,我可以,但这里的目标是动态地执行,但是我想知道是否所有事件都在节点上有这个属性,例如
touchstart
,看看事件是否在jQuery中注册,但没有在JS中注册,然后这个函数返回true,但该事件不是本机JS事件这似乎是jQuery使用的方法()