我正试图在vanilla JS中进行事件委托.我有一个像这样的容器内的按钮
<div id="quiz">
<button id="game-again" class="game-again"><span class="icon-spinner icon"></span><span>Go again</span></button>
</div>
Run Code Online (Sandbox Code Playgroud)
按照David Walsh的不错说明,我正在向按钮的祖先添加一个事件处理程序,如下所示:
this.container.addEventListener('click', function(e){
if (e.target && e.target.id == 'game-again') {
e.stopPropagation();
self.publish('primo:evento');
}
});
Run Code Online (Sandbox Code Playgroud)
this.container是#quiz元素.这有一半的时间,但其余的时间click事件的目标是按钮内的跨度之一,所以我的事件处理程序不会被调用.处理这种情况的最佳方法是什么?