0

我有可变数量的促销项目 ( panels) 位于滑动带中,应设置为面板 ( 300px) 的宽度乘以面板的数量。

它会提醒正确的皮带尺寸。对于固定数字,滑块也可以工作。我怀疑错误出在if/else if零件上。我什至不确定这是有效的 Javascript 语法。

任何提示表示赞赏。

   $(window).ready(function(){  
        var whichpanel = 1;
        var panels = $(".panel").length;
        var beltsize = panels*300;
        $('.belt').css({'width':beltsize});
    });

    $(window).ready(function promoslider(){
        if (panels>whichpanel){
            $('.belt').delay(7000).animate({'left':'-=300'}, 500);
            whichpanel += 1;    
        }
        else if (panels=whichpanel){
            $('.belt').delay(7000).animate({'left':'0'}, 500);
            whichpanel = 1;
        }   
        setTimeout(promoslider, 0);

    });
    promoslider;

更新!这是现在对我有用的代码(http://jsfiddle.net/zr5Nd/10/):

$(window).ready(function () {
var whichpanel = 1;
var panels = $(".panel").length;
var beltsize = panels * 300;
$('.belt').css({
    'width': beltsize
});

function movingdiv() {
    if (panels > whichpanel) {
        //alert('Panels:' + panels + '/whichpanel:' + whichpanel);
        $('.belt').delay(1000).animate({
            'margin-left': '-=300px'
        }, 500);
        whichpanel += 1;

    } else if (panels == whichpanel) {
        //alert('Panels:' + panels + '/whichpanel:' + whichpanel);
        $('.belt').delay(1000).animate({
            'margin-left': '0'
        }, 500*panels);
        whichpanel = 1;

    } else {
        alert('3');
    }
    setTimeout(movingdiv, 0);
}

setTimeout(movingdiv, 0);

});

4

3 回答 3

1

您需要在语句中使用相等/身份运算符 ( ==/ ===) 而不是赋值运算符,例如=else if

else if (panels == whichpanel){
   $('.belt').delay(7000).animate({'left':'0'}, 500);
   whichpanel = 1;
}  

另外,我相信promoslider;应该是promoslider();

于 2013-04-08T11:56:32.887 回答
0

使用panels === whichpanel 而不是 panels=whichpanel

变量whichpanelpanels已经失去了它们scopeif/else if一部分。

于 2013-04-08T11:57:22.557 回答
0

您也应该调用promosliderinto $(window).ready,否则该函数尚不存在。另外,您必须以这种方式进行呼叫promoslider()promoslider单独不会导致呼叫。当然,您必须在您的-statement中使用equals-operator==而不是assign-operator 。=if else

于 2013-04-08T11:58:58.770 回答