Ich habe ein Skript für einen Schieberegler geschrieben. In meinem Code definiere ich eine Variable mit dem Namen autoswitch
mit dem Standardwert true
und die Folien werden geändert, wenn autoswitch == true
. Aber wenn ein Benutzer auf den Pfeil der Folie klickt, ändert sich autoswitch
zu false
. Mein Code ist folgende:Kann den Wert einer Variablen in JQuery-Funktion nicht ändern
$(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);
}
});
Ich habe zwei Schieber Pfeil und beide auf klicken, in der ersten Zeile der Funktion den Wert von autoswitch = false;
ändern, aber dieser Trick funktioniert nicht und auch nach auf die Pfeile klicken, Folien wechseln automatisch! Wie kann ich mein Problem lösen?
uhm. dass if-Anweisung nur einmal vorkommt. Sobald es läuft, ist es fertig und das Intervall hat begonnen oder wird es nie geben. –