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

変数whichpanelは、その部分でpanels失われました。scopeif/else if

于 2013-04-08T11:57:22.557 に答える
0

関数がまだ存在しないため、の呼び出しも同様に配置する必要がありますpromoslider$(window).readyさらに、この方法promoslider()で呼び出しを行う必要がpromosliderあります。単独では呼び出しにはなりません。そしてもちろん、 -ステートメントで==代入演算子の代わりに等号演算子を使用する必要があり=ますif else

于 2013-04-08T11:58:58.770 に答える