スライダー用のスクリプトを作成しました。私のコードでは、デフォルト値がtrue
のautoswitch
という変数を定義し、autoswitch == true
の場合はスライドを変更します。しかし、ユーザーがスライドの矢印をクリックした場合、autoswitch
はfalse
に変更されます。私のコードは以下の通りです:JQuery関数の変数の値を変更できません
$(document).ready(function() {
// Initiate variables
var speed = 500;
var autoswitch = true;
var autoswitch_speed = 5000;
// Add initial active class
$('.slide').first().addClass('active');
// Hide all slides
$('.slide').hide();
$('.slide').first().show();
$('#next').click(function() {
autoswitch = false;
$('.active').removeClass('active').addClass('oldActive');
if($('.oldActive').is(':last-child')){
$('.slide').first().addClass('active');
} else{
$('.oldActive').next().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.slide').fadeOut(speed);
$('.active').fadeIn(speed);
});
$('#prev').click(function() {
autoswitch = false;
$('.active').removeClass('active').addClass('oldActive');
if($('.oldActive').is(':first-child')){
$('.slide').last().addClass('active');
} else{
$('.oldActive').prev().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.slide').fadeOut(speed);
$('.active').fadeIn(speed);
});
if(autoswitch){
setInterval(function() {
$('.active').removeClass('active').addClass('oldActive');
if($('.oldActive').is(':last-child')){
$('.slide').first().addClass('active');
} else{
$('.oldActive').next().addClass('active');
}
$('.oldActive').removeClass('oldActive');
$('.slide').fadeOut(speed);
$('.active').fadeIn(speed);
}, autoswitch_speed);
}
});
を私は、関数の最初の行にautoswitch = false;
の値を変更すると、クリック上の2つのスライダーの矢印と、それらの両方を持っているが、このトリックは動作しても、矢印をクリックした後はありません、スライドが自動的に切り替わります!問題を解決するにはどうしたらいいですか?
uhm。 if文は一度だけ起こります。それが実行されたら、それは完了し、間隔が始まったか決して決まります。 –