trigger() 发送消息机制还不太明白
// send message
this.$items.on('show shown hide hidden', function (e) {
self.$elem.trigger('slider-' + e.type, [self.$items.index(this)], this);
});$focusSlider.on('slider-show slider-shown slider-hide slider-hidden', function (e, i, elem) { // i表示索引值 elem是dom元素
console.log(i + ':' + e.type);
});

this.$items.on('show shown hide hidden', function (e) {
self.$elem.trigger('slider-' + e.type, [self.$items.index(this)], this);
});
这段代码 不理解 为什么这么写了 然后 test.html 这边 接收
var $focusSlider = $('#focus-slider');
$focusSlider.on('slider-show slider-shown slider-hide slider-hidden', function (e, i, elem) { // i表示索引值 elem是dom元素
console.log(i + ':' + e.type);
});
这样就能 打印出
0:slider-hide
1:slider-show
0:slider-hidden
1:slider-shown
这个i 为什么能 0 1 0 1 ?
'show shown hide hidden', trigger('slider-' + e.type,
这段代码也不太理解 为什么要这么写 然后 就能打印 slider-show 这样了 是语法规定了这样写吗 'slider-' + e.type,
还有 最后一个this 是什么 self.$elem.trigger('slider-' + e.type, [self.$items.index(this)], this);
正在回答
同学你好,问题解答如下:
1、on可以绑定自定义事件,然后可以通过trigger去触发,例如:绑定test事件,并输出事件类型


2、课程中也是这样一个道理,show,shown等事件是在showHide.js中触发的


触发之后拿到e.type类型,与slider进行拼接

再次用trigger方法触发slider-show,slider-shown等事件,也就是html中绑定的事件

3、trigger语法:$(selector).trigger(event,[param1,param2,...])
event 必需。规定指定元素要触发的事件。
[param1,param2,...] 可选。传递到事件处理程序的额外参数。
课程中也是一样的:

对应到html中,event对象为第一个参数,是每个事件中都有的,额外传入的参数依次排列:

i是当前图片索引,this是当前图片元素。
知道了trigger的语法和用处,就明白课程中的写法了,不难理解哦。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星