如何知道某个事件是否是JavaScript中的DOM / HTML事件?
假设我有一个元素<a>
。我怎么知道click
或focus
是原生事件,而mycustomevent
之类的其他事件不是?
例如,如果我想以不同的方式附加侦听器,如果事件是本机或自定义的话:
var eventName; // can be 'foo', 'click' or 'touchstart';
var link = document.querySelector('a');
if(//custom){
eventName += '.domain';
}
link.addEventListener(eventName, function (){ //... });
答案 0 :(得分:3)
function isNativeEvent(eventname) {
return typeof document.body["on" + eventname] !== "undefined";
}
这将检查是否在某个元素上定义了事件处理程序(包括null
),这意味着它是一个本机事件。
> isNativeEvent('click')
< true
> isNativeEvent('myCustomEvent')
< false
答案 1 :(得分:0)
此处列出了Javascript原生事件:http://en.wikipedia.org/wiki/DOM_events,因此如果您使用的事件不在列表中,则表示自定义事件。