我正在创建一个轮播(我知道那里有插件,但我想创建自己的)。我正在努力将这段代码放在一个函数中,因为我必须返回一个真值或假值才能让代码再次运行。到目前为止,我有这个重复的代码:
if(!active) {
active = true;
$('#box ul').animate({ 'left': left_indent }, 500, function () {
$('#box li:last').after($('#box li:first'));
$('#box ul').css({ 'left': left_value });
active = false;
});
}
我已经尝试将它放入这样的函数中:
function slider(left_indent, left_value) {
$('#box ul').animate({'left' : left_indent}, 500,function(){
$('#box li:first').before($('#box li:last'));
$('#box ul').css({'left' : left_value});
var active = false;
});
}
我试过这样称呼它:
if(!active) {
active = true;
slider(left_indent, left_value);
}
每次我调用该函数时,我似乎都无法主动返回 false。我不确定我错过了什么。
到目前为止,这是我的所有代码:
$(function () {
var item_width = $("#box li img").outerWidth();
var left_value = item_width * (-1);
$('#box li:first').before($('#box li:last'));
$('#box ul').css({ 'left': left_value });
var active = false;
$("#next").click(function () {
var left_indent = parseInt($('#box ul').css('left')) - item_width;
if(!active) {
active = true;
$('#box ul').animate({ 'left': left_indent }, 500, function () {
$('#box li:last').after($('#box li:first'));
$('#box ul').css({ 'left': left_value });
active = false;
});
}
return false;
});
$("#back").click(function () {
var left_indent = parseInt($('#box ul').css('left')) + item_width;
if(!active) {
active = true;
slider(left_indent, left_value);
}
return false;
});
});
函数滑块(left_indent,left_value){ $('#box ul').animate({'left':left_indent},500,function(){
$('#box li:first').before($('#box li:last'));
$('#box ul').css({'left' : left_value});
var active = false;
});
}
任何建议都会很棒。提前致谢