Dies funktioniert in Firefox und Chrome, aber nicht in IE.jQuery + setTimeout() + clearTimeout() funktioniert nicht in IE7 & 8
Im Internet Explorer werden die Timer nicht gelöscht und es erscheint jedes Mal, wenn update_slideshow() aufgerufen wird, wird ein neuer Timer erstellt.
// slideshow params
var currentSlide = 1;
var numSlides = 4;
var pause = false;
function pause_show(bool){
pause = bool;
}
// transitions the slides
function update_slideshow(slide){
if(slide > numSlides) slide = 1;
//is user tyring to pause/play this slide
if(currentSlide == slide){
switch(pause){
case false:
$("#ssbut" + slide.toString()).removeClass('pause').addClass('play');
pause = true;
break;
case true:
$("#ssbut" + slide.toString()).removeClass('play').addClass('pause');
pause = false;
break;
}
}else{ //user clicked on a button other than the current slide's
clearTimeout(slideTimer);
function complete() {
$("#slide" + slide.toString()).fadeIn(500, "linear");
if(!pause)
$("#ssbut" + slide.toString()).removeClass('inactive').addClass('pause');
else
$("#ssbut" + slide.toString()).removeClass('inactive').addClass('play');
}
$("#ssbut" + currentSlide.toString()).removeClass('play').addClass('inactive');
$("#slide" + currentSlide.toString()).fadeOut(300, "linear", complete);
currentSlide = slide;
if (typeof(slideTimer) != 'undefined') clearTimeout(slideTimer);
slideTimer = setTimeout("slideshow()",4000);
}
}
function slideshow(){
if (typeof(slideTimer) != 'undefined') clearTimeout(slideTimer);
if(!pause){
update_slideshow(currentSlide + 1);
}
slideTimer = setTimeout("slideshow()",4000);
}
var slideTimer = setTimeout("slideshow()",4000);
Bitte bearbeiten Sie Ihre Frage, markieren Sie Ihren gesamten Quellcode und drücken Sie die Code-Taste in der Symbolleiste (sieht aus wie ein paar geschweifte Klammern: {}) –
Ich kann mindestens ein halbes Dutzend verschiedene Probleme innerhalb dieses Codes erkennen ... uff. 1. 'pause_show' Funktion ist überflüssig 2. Verwendung von' == '3. Switch-Anweisung zum Umschalten eines Boolean 4. Inkonsistente Verwendung von' {} '5. Verwendung von String in' setTimeout', was der Verwendung von 'eval entspricht 'das wäre Nummer 6 dann –