Hallo Ich rufe Funktion auf klicken, wenn autoswitch = true Funktion auch setInterval aufruft und autoswitch Wert auf false setzen, indem Sie erneut klick klingInterval, die nicht funktioniert.clearInterval funktioniert nicht
etwas Hilfe
$(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);
}
});
'var setIntr' ist gebunden an die 'if'-Anweisung. Machen Sie die Variable öffentlich, um sie auch in der 'else'-Anweisung zu verwenden. – Bhumika107
Ich denke, es funktioniert, wenn Sie 'setIntr' in den globalen Gültigkeitsbereich – se0kjun
verschieben, weil Sie es in' if' Block deklarieren, so dass es nicht in 'else'block \ – Gomzy