关于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