搜索

首页  >  问答  >  正文

javascript - 代码执行问题

        var num=null;
        var timer=null;
        if (num != null) {
            setInterval(function() {
                show(num);
            },500);
        } else {
            num = $("a:first");
            timer = setInterval(function() {
                show(num);
            }, 30);
        }

        $("a").on("click",function() {
            clearInterval(timer);
            num = $(this);
        });


        我想点击的时候更新num的值来释放if里的代码,
        要怎么改让他第一次加载是走else里的,当点击后就走if里的,
        我这里个if和else里都是用定时器去更新数据的
        而else里是默认显示第一个对象的数据
ringa_leeringa_lee2817 天前332

全部回复(2)我来回复

  • PHPz

    PHPz2017-04-10 15:01:39

      var num = $("a:first");
      var timer = setInterval(function() {
                    show(num);
                }, 30);
    
            $("a").on("click",function() {
                if(timer){clearInterval(timer);}
                num = $(this);
                 if (num != null) {
                    setInterval(function() {
                    show(num);
                 },500);
               } 
            });
    
    

    楼主,你要的是这种么?
    这段代码加载的时候,首先给了默认num,然后定时器,然后点击a的时候清除定时器,然后复制num然后继续定时器。
    如果我理解对的话0.0

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 15:01:39

    既然 num 已经是全局对象的话就没必要用传参的形式了吧。线性函数代码过了就是过啦,封装成函数之后才能重复调用嘛……

    var num=null;
    var timer=null;
    (function showItem() {
        if( timer != null ) clearInterval( timer );
        if( num != null ) setInterval( show, 500 );
        else {
            num = $("a:first");
            timer = setInterval( show, 30 );
        }
    })();
    $("a").on("click",function() {
        num = $(this);
        showItem();
    });
    

    回复
    0
  • 取消回复