代码执行问题



 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里是默认显示第一个对象的数据

jquery web前端开发 JavaScript

800℃008 10 years, 1 month ago

既然 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();
});

kimhung answered 10 years, 1 month ago


 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

你快间子间 answered 10 years, 1 month ago

Your Answer