不是要采用事件委托吗?为什么不用这样写:$("ul").on('click',‘li',function(e)

来源:6-1 jQuery事件对象的作用

Zohar

2016-07-14 15:24

不是要采用事件委托吗?为什么不用这样写:$("ul").on('click',‘li',function(e)

写回答 关注

5回答

  • qq_羽之翼_0
    2017-06-03 13:22:04

    $("ul").on('click',‘li',function(e){}就拿这个来说吧,如果 你把$("ul")改为$("body")那么整个页面内的里点击都会触发事件(只有点击li),如果on('click',‘li',function(e){}的li去掉那么你点击任何子元素都会触发事件,所以这里的ul和li起的作用更像是确定冒泡范围(ul)和筛选(li)的作用,纯属新手个人理解,不对勿喷

  • 慕妹7508549
    2016-10-27 10:50:30

    你可以这么想,我们宿舍有6个人,我是其中一个,有人挑衅了我,也相当于有人挑衅了我们宿舍,也就是冒泡的理念,click了我就是click了我们宿舍,这里有没有li都可以实现,当然其实这里面是有区别的(只是这个细节用不到)

    1、有li的情况下,可以这么理解,给li添加click事件,然后把事情委托给ul,这个事件是li的,不是ul的,(没有为ul添加click事件)

    2、没有 li的情况,可以这么理解,给ul及ul中的所有元素(包括li)添加click事件,(给ul添加了click事件)

    实验方法

    在没有li的情况:点击li选项,会提示li时的内容,

                            点击ul(只是ul没有点击到li,也就是点小黑点的前面),会出现ul的内容(包含ul所有的内容)

    有li的情况:你执行上面的动作,你会发现第二个动作没有效果,那是因为ul根本就没有click事件


    click默认情况下并不冒泡,在这时也没有执行冒泡,只不过你打了就相当于打了我们宿舍也算是冒泡的理念吧,也就是说你单击了ul中的li,难道说你没有单击ul吗?在书上有几个字,书是ul,字是li,你看了字,你难道说你没有看书吗?

    慕妹7508...

    on本来就是以委托的方式添加事件

    2016-10-27 10:58:21

    共 1 条回复 >

  • 门外小白3342804
    2016-08-10 09:50:21

    同样新手,不对勿怪。就我愚见,课程里根本没有事件委托。事件也不是在 li 上触发的,是li冒泡到ul触发的,而event.target.Content是当前点击元素的内容。li是源点击对象,所以体现出来的是点什么,显示什么。其实是ul干的活,li署的名。

    如果事件委托是这样的: $("ul").on('click',"li",function(e){
               alert('触发的元素是内容是: ' + this.textContent)
            })         this就能实现,这是li自己干的活,自己领功。

    好吃的蛋包饭

    是的,非常清楚

    2018-08-05 19:51:03

    共 1 条回复 >

  • _heyshadow
    2016-07-15 09:29:18

    加不加li的区别大致就在于,不加li点击ul也会触发,但是加了以后只触发li元素。

  • qq_嘿我在这显眼吧_03353416
    2016-07-14 16:01:57

    虽然是同样的效果,前面不加li的话点击ul里所有的元素都会被触发,加了li只会让里面的li元素触发

jQuery基础(三)—事件篇

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

89997 学习 · 625 问题

查看课程

相似问题