相关疑难解决方法(0)

Vanilla JS事件委托 - 处理目标元素的子元素

我正试图在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事件的目标是按钮内的跨度之一,所以我的事件处理程序不会被调用.处理这种情况的最佳方法是什么?

javascript dom publish-subscribe event-delegation

21
推荐指数
2
解决办法
1万
查看次数