Привет Я вызываю функцию при нажатии, когда функция autoswitch = true также вызывает setInterval и устанавливает значение autoswitch равным false, снова щелкая вызов clearInterval, который не работает.clearInterval не работает
Нужна помощь
$(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' является связанный оператором 'if'. Сделайте переменную public использовать ее в 'else'. – Bhumika107
Я думаю, что он работает, если вы переместите 'setIntr' в глобальную область – se0kjun
, потому что вы объявляете его в блоке' if', чтобы он не мог получить доступ в блоке 'else' \ – Gomzy