カルーセルを作成しています (そこにプラグインがあることは知っていますが、独自のプラグインを作成したい)。コードを再度実行するには、true または false の値を返す必要があるため、このコードを関数内に配置するのに苦労しています。これまでのところ、繰り返されるこのコードがあります:
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;
});
});
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;
});
}
どんなアドバイスも素晴らしいでしょう。前もって感謝します