こんにちは私はautoswitch = true関数を呼び出すときにsetIntervalを呼び出し、autoswitchの値をfalseに設定します。これは再び動作しないclearIntervalを呼び出します。clearIntervalが機能しません
あなたはその関数にローカル変数としてsetIntrを定義しているので、それがある
$(document).ready(function() {
var speed = 500;
var autoswitch = true;
var autoswitch_speed = 4000;
//add active class
$('.slide').first().addClass('active');
//hide slides
$('.slide').hide();
//show first slide
$('.active').show();
// Click next to show next slide
$('#next').click(function() {
nextSlide();
});
//Onclick go to prev slide
$('#prev').click(function() {
prevSlide();
});
//play auto slide show
$('#playBtn').click(function() {
if (autoswitch === true) {
var setIntr = setInterval(nextSlide, autoswitch_speed);
autoswitch = false;
} else {
clearInterval(setIntr);
autoswitch = true;
}
});
// next slide function
function nextSlide() {
$('.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);
}
// Prev slide function
function prevSlide() {
$('.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);
}
});
: "setIntr" グローバルdocument.ready
でその後、以下のコードを使用し
宣言'if'ステートメントによって束縛されます。 'else'文でも変数をpublicにしてください。 – Bhumika107
'else 'ブロックにアクセスできないように' if'ブロックに宣言しているので、 'setIntr'をグローバルスコープ – se0kjun
に移動するとうまくいくと思います。\ – Gomzy