我有一个可变数量的促销品(panels
)位于滑动带中,应设置为面板宽度(300px
)乘以面板数量。< / p>
警告正确的腰带。使用固定数字,滑块也可以工作。我怀疑错误发生在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;
UPDATE!以下是适合我的代码(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);
});
答案 0 :(得分:1)
您需要在==
语句中使用相等/身份运算符(===
/ =
)而不是赋值运算符else if
,例如
else if (panels == whichpanel){
$('.belt').delay(7000).animate({'left':'0'}, 500);
whichpanel = 1;
}
另外,我认为promoslider;
应该是promoslider();
。
答案 1 :(得分:0)
使用panels === whichpanel
代替panels=whichpanel
变量whichpanel
,panels
在scope
部分丢失了if/else if
。
答案 2 :(得分:0)
您也应该将promoslider
的调用放入$(window).ready
,否则该函数尚不存在。此外,您必须以promoslider()
方式拨打电话,promoslider
单独不会拨打电话。
当然,您必须在==
语句中使用等号运算符=
而不是赋值运算符if else
。