$('body')改成$('div')为什么弹了两次

来源:5-2 on()的高级用法

啊啊啊啊123

2016-09-08 17:11

$('div').on('click', 'a', function(e) {

       alert(e.target.textContent)

    })


写回答 关注

3回答

  • Freestyle文
    2016-09-12 16:13:49

    事件最开始由最具体的元素(文档中嵌套层次最深的那个节点,这里是a)接收,然后逐级向上传播至最不具体的那个节点,这就是事件冒泡的流程,在这里你给两个div都绑定了click事件,都由a接收并执行回调函数,所以会触发两次

  • __innocence
    2016-09-08 19:43:06

    a上层有两个div,冒泡了两次。

    你换成

    $('.left').on('click', 'a', function(e) {

           alert(e.target.textContent)

        })

    就没问题了,这应该是你想做的事。


  • resway
    2016-09-08 17:32:12

    事件冒泡吧

jQuery基础(三)—事件篇

jQuery第三阶段开启事件修炼,掌握对页面进行交互的操作

89996 学习 · 625 问题

查看课程

相似问题