00:00
他的语法是这样,他说你你想给某一些标签,或者给某一些元素加事件的时候,你别像上这个这种方式一样,给哪些元素加事件,用选择器选中那些目标元素,拿到他们的几块对象,他说你别直接拿那些目标元素,为什么?因为那些目标元素如果是动态的话,你这种方式加不上,那怎么办呢?他是这样,他说他说你要给哪些元素加视角,首先是这样,你别找那个元素,你找谁找那个元素的一个负元素。那这个负元素,我们把它叫做怎么找负元素,知道吧,它还是用选择器来找,它叫负选择器,叫负选择器对给哪些元素加时间,先别什么,先别找那个目标元素,就找那个目元素的一个负负元素,但是找负元素是不是随便找一个负元素都行,不是这样,找这个负元素它有要求,他有要求这个负元素。负元素它有要求,他说这个负元素呢,必须是固有元素,这个负元素必须是一个是必须是固有元素,就是对加视角的这个函数而而言,必须是一个,什么叫固有元素,必须是固有元素,就是加视角的时候,这个元素都已经存在了。
01:21
其他的不要求,其他的不要求什么意思,就是这个元素不一定是它直接负元素,是间接负元素也行,间接负元素什么意思?就是目标元素负元,直接负元素可以是负元素的负元素,或者负元素的负元素,负元素一直往上找也行。不一定就不一定可以是什么,可以是直接负元素,也可以是,也可以是间接出元素。间接负元素或者叫负元素的负元素都行,但是不管是什么样的负元素,这个负元素必须是个固有的元素,这样就行了。
02:01
好,这是我们说的,这然后呢,大家看我们说那找到负元素之后怎么办呢?就这样后边掉一个函数,哪一个函数就这个函数,这是结块的提供的函数,调这个函数啊,那调这个函数的时候,这个函数里边传三个参数,这三个参数首先第一个参数,第一个参数叫事件类型。事件类型,事件类型什么意思?那事件类型我们说给我们前面说的这些事件函数和事件属性是相对应的,就是你给他们加试件加什么试卷要写个试件类型,这个试件类型什么给这些都是一样,一一对应。以前你有什么事件函数,那这个地方就有什么事件类型,而且大小写都不带变的,单击事件可雷可,双击事件DB可雷可等等,这些全部完全一样,知道吗?所以我们事件类型事件类型事件类型跟前面我们讲的那些事件属性。
03:00
跟事件属性,跟件属性和事件函数和事件函数是一一对应,一一对应,大小写都不带变,你想加什么试件,把那以前我们学的那些试件函数或者试件属性直接拿过来就行了,它是个字符串,你知道吧,然后呢,大家看这是第一个,第一个参数,第二个参数,这个叫目标选择器,也叫子选择器,子选择器,子选择器什么意思?就是你这个地方,你只是找到一个副标签。我要加视角,可不是给负标角加视角,我给谁给我的目标元素加视角,你最终还得找到你的目标元素怎么找,在对在这个负元素下边,以它为基础去找那些子标签,去找这一个标签下边的某一些标签,那怎么找也是用选择器去找,但是这个选择器是建立在负选择器这基础之上的,是找,是在它下边找这些元素去,所以说这是什么子选择器,子选择器其实就是目标元素,子选择器就是目标元素,目标元素给哪些元素加设件就找到元素,而且它这个选择器跟我们以前学的那些选择器的语法是完全一样的,那只不过这个地方大家注意的是,它这个子选择器是自动建立在负选择器基础之上。
04:30
换句话来说,子选择器和负调性的本来就是个父子选择器。你以前写的父子选择器是什么样的,它俩就是什么样子,只不过不一样的地方是,以前我们写父子选择器就是加个什么间括号,或者加一个空格,现在什么不用加监块,不用加空格了,把他俩拆开来写了,从事实上来讲,它俩就是一个负子选择器,知道吧?所以这是我们说的,这它是建立在什么是建立的根,那么这样吧,跟负选择器,选择器,然后呢,构成构成一个父子选择器。
05:08
选择器知道吧,是建立在负选择器基础之上,这么一个这么一个这子选择器,这样的话我们就找到目标元素了,知其实大家看它俩其实本来就是一个选择器,就是拆开写了,就是你不用加监宽二和加空格了,就是一个负子选择器,就是拆开了,这是第二个元素,这第二个参数下边第三个参数,第三个参数大,你猜也能猜出来是什么意思,对函数是吧,你加事件发生这种目标元素上发生这种事件出来,那要执行我们的GS代码,执行什么GS代码,然后呢,我们把这代码写到这里边行了,然后呢,这是三加一个三个省,然后大家大家看这是我们说的,这以后我们可可以把这代码写到这里边了,白。
06:00
第三个是叫就是这个回调函数了,所以这样的话的话,我们就加上给我们所主说的这些元素,就加入十间,这是我们说的这。我这个地方再给大家强调一下,这里边儿的GS代码,这GS代码。跟你以前用这种方式加事件的,跟元素加事件这些代码一点都没变,跟以前的代码,你以前这些代码咋写的,然后呢,你现在在on这个回调函数里边也是怎么写,完全都没变。为什么完全没有?我还是给一些元素加视角,我选中的元素还是这一本图知道吧?我们都知道以前在这个函数里边有一个内置对象叫this。举个例子说,This它代表。当前正在发生这种事件的元素的盗姆对象,那同样道理,这个函数里边也有一个Z,这个Z也是代表那些正在发生这种事件的目标元素的盗墓对象。
07:04
如果你在写S写JS代码的时候,用到了this了,完全都一样,跟以前的含义完全一样懂,所以一点都不用变好。这是我们说到这种给元素,给元素加试角用这种方式,这种方式的好处是什么?这种方式的好处是这样,它不但能给固有元素加上时间,还能给动态生能元素价值,它不管是动态的还是固有的都能加上,所以它的功能比相对于这个来讲的话是更更强大。这是解块的后期推出来一种加世界的一种方式,它不但这种方式不但能给固有元素,固有元素添加事件,添加试件,然后还能够给动态生成的元素。添加事件,添加事件啊,所以他是比较强大知道吧。
08:01
这是我们说到这儿,其实大概我们给元素加试件,我们给大家讲的就这三种,光种其实远远不止这三种,总共有六七种呢,六七种的包解块RY给我们提供,还有好几种的,但是那些方式呢,都能够被这三种方式取代,而且那那些方式都有各自的局限性,所以我们就不给他讲了,我们也不推荐大家用别的方式。有这三种方法足够用了啊,足够用了,这是我们说的,这好,这是我们说在页面上给元素加视角,我们就给大家讲这三种啊,我们以后也是这三种。那这三种大家看一看,开发的时候用哪一种?假如你要要让你开在公司里边做开发,给元素加设件,你用哪一种?对,那那有的人说老师诶这种on这种方式比较好,那我以后都用on了,都用on行吗?对理论上来讲可以是吧,但是奥种方式,那你看吧,从语法上来讲,它比这种方式是不是麻烦,对麻烦都比这种方式麻烦了。
09:09
对,所以说大家我们说,但是这种方式我们以后很少用了啊,因为他会代码会乱,主要是这两种方式,这两种方式到底用哪一个,那你说对看自己的实际情况中怎么实际情况了,如果你要能确保。你的元素一定是固有元素,这个时候用它是吧,但是你要如果确保不了你的元素是固有元素,那你只能用它,那你说老师我怎么能够确保我的元素是不是固有元素,那你怎么能确保那个标签加倍,对,看看那个标签什么时候生成,跟你这个调试件加视角的这个代码比一比,谁什么时候生成知道吧。所以这个时候,这是我们说到这样,所以当然我们要这样,那我们这个地方,那你看我这个地方,我要给这拆个boss加试卷。给列表中拆包子加数据,那用哪一个是不是得用on了,要为什么是on,你得分析一下,你分析一下这些拆包子是什么什么什么啊,那就是分页查询拼出来的是吧?那分页查询拼出来,分页查询拼出来,那我这个加试要这个代码什么时候执行。
10:16
当页面一加载完,就就么就添加了,就就就执行了,那那你就看看它是谁前谁后了,那我说他动态生成拼出来的,拼什么拼之前首先去查,查得需要一个过程,由于是异步去查,那所以他查询的结果一定会慢。所以虽然我们这个代码和这个拼出来,这个代码都是什么在入口函数这去什么去去执行,但是由于他要先查数据,所以而且是异步去查,所以它一定是慢,所以我就不能够确保我加试件的时候,那个代码执行的时候,他们都已经生成,我不能确保,不能确保,那应该说你只能用on了,所以下边我们就准备用on这种方式给什么列表中所有的拆box添加视角了,所以那这种方式就不对了,这种方式不对,不对的话把拉么注咐掉,那我们准备用on这种方式来给它加视角。
11:10
是吧,那用二种方式加视角,首先呢,你得找到这些目标元素,就这差box它们的一个负元素。那找一找吧,而且必须保证是固有的副元素,那你找一找大看这些拆个boxs这些标签,他们的副元素是谁?对,那你找一找是吧,找一找这些差速什么时候生成,在这个生成的他们的负元素,你从理论上来讲,这些TD是不是也是他们的负元素,那这些这些TD可不可以啊?不行,为啥不行?对,它也是动态正成的,也是在我加视角的函数调到调了之后才生成的,这个TR可不可以。也是他们的负元素可不可以,不可以是吧,也是动态正成的,虽然是负元素,但是如果是动态生成的,如果这个负元素也是动态生,那就不行了,那就再往上找TR上面是什么,对T包,T包在哪呢?在这个地方呢?这个这一个T包是不是就可以了,可以当页面加载的时候,那这个t boy就正常了,所以这个t boy可以。
12:21
知道吗?那我再给他,我再问他一下,这个可不可以踢害的可不可以。对不可以,为什么那些拆个boss都在这里边呢?他们这个T开的是是他们的副元素吗?是负元素吗?不是跟他没关系是吧,他是他们的复元素的兄弟节点是不是不是他们负元素知道吧,那这个table可不可以。可以是吧,根据咱们讲的理论是可以的,怎么可以的?这个提包的这些这些什么拆个包子,列表中拆个包子确实是在他们下边,是是列表中拆个包子负元素,而且这个table是不是也是个。
13:05
也是一个什么固有元素啊,固有元素,所以table可以,那table也可以,那大家我再问你这个div可不可以,对可以也是固有的负元素知道吗?那我这个既然这三个都可以,你选哪一个。从理论上来讲,这三个都可以选,选谁啊?T包子是吧?为啥选T包子?为啥选T包仔?对,但你要选table大看你找你要这么选中副标间之后是吧,是不是你还得找目标元素行找目元是不是找那拆个包S,找拆克包S这个table下边除了拆,除了列表中拆包S还有谁。对,还有全选按钮是吧,你这样的话,你把全选按钮也选上了,是不是全选按钮我们不准备加了,知道吗?所以说大概我说那这个时候如果你找这些副元素,那这些副元素它包含的范围比较大,有可能包含同样的标签,这个时候你在它基础上再找目标元素不好找了,容易受到别别的标说的干扰了,知道吧。
14:15
所以虽然从语法上可以,但是我们什么,但是我们不选择这些,所以大家会什么,大家会有一个可以总结一下。这个负元素大家找到时候,这个负元素理论来讲只要是固有的元素都行,但是我们实际开发的时候,是不是这个富固有的负元素范围越小,我们以后找目标元素的时候越好找啊,是吧?所以我们的元素,我们的原则是固有的副元素范围越小越好。啊,从理论上来讲,只要是固有的负氧素都可以。但是我们的原则就是说原则,我们的原则,原则就是固有负元素越小,范围越小越好,范围越小越好,那么将来找那些目标元素的时候,好找知道吧。
15:10
这是我们说到这是,所以那这个地方的看我就找这个提包,对了,然后呢,这个地方来。这些这个地方啊,那我们找负元素那们那我用这种用这个语法来加,那么首先找负元素,找负元素我们就找我们的T包的,找T包的用ID选择器,这就拿到负选择器,然后调函数啊掉啊这个on里边三个参数,第一个参数事件类型我们要加,单击事件这个地方可了一块是吧?给事件函数相对应了是下边目标选择器,目标选择器去找T包下边的拆克包袱,那T包下边拆包袱怎么找啊。对,印瀑是印瀑,这种印瀑啊,因五经为什么,因为他这个选择器本来就是在他基础之上去找的。
16:09
它俩就是一个父子选择器,就是我们前面给大家讲了,就这个父子选择器,只不过把他俩拆开写了负选择器,写前面这个什么,写到这儿,这是目标小问力,其实说白了就这个。就它就这了,就是把这个父子选择器拆开了,这种拆掉中间不用写监块,不用写空格,这样就行了。还是选目标,选动机下边第三个参数三个式反,还是给这个元素下边的这些元素加上单击事件,加上单击事件之后怎么办?在这边执行我代码执行我代码执行什么,那我们这个地方就是判断列表中拆报S是不是都选中了,如果都选中,全选上哪也选中,否则只要有一个没选中,全选按钮也取消,那这个代码的大卡跟这个代码是完全一样,直接拷过来就选中。
17:09
为什么?因为加视角,就是给这些元素加上视角,他一点那元素,然后呢,就直接我们代码代码是完全一样的,现在我们这里边没用this,即使你这里边用到this了,在这里边也一样直接可以用this,为什么?因为就是就是跟这个代码是完全一样的,就是变换了一种写法而已,还是给这些元素加单机时间,知道吗?就是变换了一下写法是完全一样的,明白吧,好这样的话呢,我们这个代码我们就写了,写完之后这种方式就能加上时间了,好这时候我们说到这,那下边我们来启动服务来测试一下就行了。
18:09
然后呢,这个地方来一个张三,然后呢YF123点进来,然后呢大看市场活动,然后呢,你比如说我选那个这我全选上了,然看我点下边这个点任何一个它都会处罚我们第二个函数知道吧,它判断下边就是不是都选中,如果都选中上面就选,如果至少有一个没选中,那上面就取消,你看我一点告诉你。上边就取消了,然后点这个方取消了,再点你看,再点你看都西选择吧。知道吗?好,这样的话,大概我们这个我们就给大家做完了,就全选和取消全选。这是啊,这。
我来说两句