关于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里生效。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 14456 问题

查看课程