js事件代理如何给全局绑定click事件?

js通过事件代理的方式绑定跳转事件,我这里的逻辑是把click事件绑定在最外层container上面,如果e.target包含我已经写好的class jumpUrl,则执行跳转逻辑。但是这种方式好像只能是在点击的元素的上面,也就是最内层的元素上面有相应的class才能跳转,在外层加同样的class不生效,一直想不太明白。

 document.querySelector('#container').addEventListener('click', function (e) {
            if(e.target.classList.contains('jumpUrl')){
                console.log("点击jumpurl")
            }
        },false)
<div id="container" class="jumpUrl">
    <div id="wrap">
        <div id="s1" class="jumpUrl">s1
            <div id="s2" class="jumpUrl">s2</div>
        </div>
        <div id="s3"></div>
    </div>
</div>
阅读 5.1k
2 个回答

应该用event.currentTarget

id="container jumpUrl"应该换成class="container jumpUrl"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题