关于current的值问题,
来源:5-8 首页.UI组件-UiSlider(3)
Bravura
2020-01-04 16:04:23
$.fn.UiSlider=function () {
var ui=$(this);
var wrap = $('.ui-slider-wrap');
var btn_prev = $('.ui-slider-arrow .left',ui);
var btn_next = $('.ui-slider-arrow .right', ui);
var items = $('.ui-slider-wrap .item', ui);
var tips = $('.ui-slider-process .item', ui);
//预定于
var current = 0;
var size=items.size();
var width = items.eq(0).width();
var enableAuto = true;
// 设置自动滚动感应(如果鼠标在 wrap 中,不要自动滚动)
ui
.on('mouseover', function () {
enableAuto = false;
})
.on('mouseout', function () {
enableAuto = true;
})
//具体事件
wrap
.on('move_prev',function () {
if(current<=0){
current=size;
}
current=current-1;
wrap.triggerHandler('move_to',current);
})
.on('move_next', function () {
console.log(current);
if (current >= size-1) {
current = -1;
}
current = current + 1;
wrap.triggerHandler('move_to', current);
})
.on('move_to', function (evt,index) {
wrap.css('left',index * width * -1);
tips.removeClass('item_focus').eq(index).addClass('item_focus');
current=index;
})
.on('auto_move',function(){
setInterval(function () {
enableAuto&&wrap.triggerHandler('move_next');
},2000);
})
.triggerHandler('auto_move');
//时间
btn_prev.on('click',function(){
wrap.triggerHandler('move_prev');
});
btn_next.on('click', function () {
wrap.triggerHandler('move_next');
});
tips.on('click', function(){
var index=$(this).index();
wrap.triggerHandler('move_to',index);
});
}假如在move_next中current在的值是不是会保存下来,但不影响跑到move_next中去?为什么会保存下来?current的作用域是在UiSlider里是吧?
1回答
好帮手慕言
2020-01-04
同学你好,关于同学的疑问,解答如下:
1、move_next事件里面是对current进行增加,也就是可以查看下一张图片。不是很理解同学提到的“但不影响跑到move_next中去”是什么意思,可以详细描述下。
2、在move_next事件里面,是修改current。是在UiSlider方法中声明的current,在这个方法里面都是可以获取到这个值的。可以理解为就是同学提到的保存。
3、理解的是正确的,是在UiSlider里生效。
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
相似问题
回答 2
回答 1