我正在尝试了解custom events,我很好奇。你可以逐字创建onClick事件但是写在自定义事件中吗?
ex。创建一个元素:
<h1 id="clicky">click here</h1>
创建与click事件相同的自定义事件?
obj = document.getElementById('clicky');
obj.addEventListener("fakeClick", function(e) { console.log(e.detail) });
var event = new CustomEvent("fakeClick", {
detail: {
hazcheeseburger: true
}
});
obj.dispatchEvent(event);
继承人JSFiddle
答案 0 :(得分:1)
这取决于你的意思,使它'与点击事件相同'。 调用dispatchEvent时自定义事件触发相应的Dom元素(就像你上面所做的那样)。所以基本上如果你发送自定义事件在点击事件处理程序中,那么它基本上模拟了一个点击事件,但似乎没有太多理由这样做。
P.S。你从小提琴那里得到的错误是因为你还没有定义你在process
事件处理程序中调用的函数fakeClick
==========更多详情=========
我的意思是您可以通过以下方式使用自定义事件来“模拟”点击事件,但这实际上无法达到目的,因为您可以直接使用浏览器点击事件。
var event = new CustomEvent("fakeClick", {
detail: {
hazcheeseburger: true
}
});
obj = document.getElementById('clicky');
obj.addEventListener("click", function () {
this.dispatchEvent(event);
});
obj.addEventListener("fakeClick", function(e) { console.log(e.detail) });