这个按需加载不是很理解
JS里面:
this.$items.on('show shown hide hidden',function(e){
self.$elem.trigger('slider-'+e.type,[self.$items.index(this),this])
})
HTML里面:
$focuseSlider.on('slider-show slider-shown slider-hide slider-hidden',function(e,i,elem){
console.log(i+':'+e.type)
})
有几个问题,
1.这两部分是怎么关联起来的?怎么传参过去
2.这里this.$items.on('show shown hide hidden)这里调用的是之前课程里面的showHide.js里面自定义的show等事件吗?
3.self.$elem.trigger('slider-'+e.type,[self.$items.index(this),this])这里是上面触发了show等事件,然后这里自行触发'slider-'+e.type事件吗?e.type返回的是什么意思,具体什么值?
4.那么[self.$items.index(this),this]这里传的两个参数是具体是什么,是返回给HTML里面这段function(e,i,elem)这里i和elem这两个参数吗?e是函数自带的augement
5.为什么是用[]来包括这2个参数,而不是用逗号隔开?
正在回答
同学你好,因为文件内容较多,看起来会有些复杂,但是是不难理解的哦,可以参考下面的解释:
1、trigger() 方法触发被选元素的指定事件类型。
语法:$(selector).trigger(event,[param1,param2,...])
event 必需。规定指定元素要触发的事件。
[param1,param2,...] 可选。传递到事件处理程序的额外参数。
2、在slider.js中初始化的时候给每个轮播元素绑定了自定义事件:
以点击右侧箭头为例:
点击右侧箭头执行to方法,也就是_fade方法:
在里面会调用showHide.js中封装的方法showHide,相应的就会触发trigger中的事件:
触发之后就会执行一开始给每个轮播元素绑定的自定义事件:
在自定义事件中又触发了一个trigger自定义的事件,事件名称进行了拼接。
e.type是事件类型,也就是定义的show,shown等。所以拼接之后的结果就是slider-show,slider-shown等,后面是传入的参数,参数固定写在[]。
self.$items.index(this)是当前元素的索引;this是当前元素。
在slider.html中:
所以上面触发了拼接后的事件,也就是html中自定义的事件。
[self.$items.index(this),this]这里传的两个参数是返回给HTML里面这段function(e,i,elem)这里i和elem这两个参数,同学理解的没有问题。e是函数自带的参数,也是第一个参数。
自己可以再测试理解下,祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星