2010-12-28 2 views
0

Ich habe eine Diashow-Galerie von Grund auf mit jQuery erstellt. Es kann eine beliebige Anzahl von Folien haben. Unter der Slideshow habe ich eine Schaltfläche "Weitere Informationen". Ich möchte, dass dieser Link alle 5000ms ändert, um die Präsentation der Folie widerzuspiegeln.Wie mache ich eine jQuery-Schleife, die das href-Attribut eines Links ändert?

Ich weiß, ich .attr kann sich den href Wert ändern, wird es nur in Abständen von 5000 ms, um verschiedene Dinge zu ändern (auf einer Schleife!), Dass ich bin völlig ratlos mit ...

Hilfe wäre sehr willkommen!

Antwort

1

Verwenden Sie eine timer.

//Set Image to first picture by default. 
$('#yourImageId').attr("src", imageSrcArray[0]); 

var milliseconds = 5000; 

//Call Function after 5 seconds to show second picture 
var t=setTimeout("changeSlide();", milliseconds); 

//If you set the image's original src to your first array item, this will cause the first update in 5 seconds to display the second item. 
var cnt=1; 

function changeSlide(){ 

    //update image src 
    $('#yourImageId').attr("src", imageSrcArray[cnt]); 

    t=setTimeout("changeSlide();", milliseconds);//Call Function Again after 5 seconds 

    cnt++; 

    //Check that cnt is within image array bounds 
    if (cnt > imageSrcArray.length-1) cnt=0; 

} 
+0

Warum eine Zeichenkette an 'setTimeout' übergeben? Übergeben Sie einfach einen Funktionszeiger. Evals sind potentiell böse. zB 'setTimeout (changeSlide, Millisekunden);' – Alex

+0

Warum nicht 'setInterval' verwenden anstatt' setTimeout' bei jedem Funktionsaufruf? – Chris

+0

weil auf diese Weise die Bildladezeit nicht aus den 5000 ms herausgenommen wird. Der Timer wird erst gestartet, wenn das Bild geladen ist. – Dutchie432

Verwandte Themen