问答详情
源自:5-2 on()的高级用法

给body绑定的事件为什么只有点击a标签才能触发

$('body').on('click', 'a', function(e)


点击body里的任何DIV都是没有反应的

提问者:绅先生 2018-12-05 09:14

个回答

  • 歌谣啊
    2018-12-07 14:22:59
    已采纳

    委托机制呀,你看看on()函数里面的第二个参数是'a',就是委托给a了,虽然绑定在了body上,但是委托给a了,所以点击a才能触发,这是我的理解

  • 20091807
    2018-12-12 14:17:52

    你得理解事件冒泡的顺序,是往上也就是由内往外,在这里就是a-->div-->body。第二个参数只是选择器,也就是说在事件冒泡的过程中碰到符合选择条件的节点就触发。至于为什么点其他地方无法触发,是因为事件根本无法到达a。因为a是最里面的节点。