Hallo,
ich bin jQuery-Neuling und versuche eine zufallsbasierte Textausgabe von p-Tags zu erstellen. Dabei habe ich versucht, in der Do-While-Schleife doppelungen auszumerzen. Was passiert aber nun, wenn ich nur ein p-Tag habe - dann läuft die Schleife ewig. Hatte versucht mit:
HTML-Code:
if(!zitate.length >= 2) return;
die ganze Funktion abzubrechen, aber ich befürchte, dass mir jemand das Prinzip noch mal erklären muss... Denn das ist jedenfalls nicht die Lösung, und ich suche was geschickteres, als eine weitere if-Abfrage, die den Block nur ausführt, wenn es mindestens zwei p-Elemente vorhanden sind. Das Prinzip von return, würde ich gerne verstehen...
HTML-Code:
<section class="content emotion" data-offsety="380" data-type="background" data-speed="10">
<article>
<p>Zitat 1: Wer nicht hören will muss fühlen.</p>
<p>Zitat 2: Blaukraut bleibt Blaukraut usw.</p>
<p>Zitat 3: Lorem Ipsum Dolor Sit amet</p>
</article>
</section>
HTML-Code:
/* Zufallszitat */
function randomZitat(zitate, currentZitat) {
alert(zitate.length)
if(!zitate.length >= 2) return;
zitate.hide();
var zitateArray = $('.emotion article p').toArray();
var elemlength = zitateArray.length;
do {
var zufallsZahl = Math.floor(Math.random() * elemlength);
var randomZitat = zitateArray[zufallsZahl];
} while ($(randomZitat).index() == $(currentZitat).index())
alert(zitate.length)
$(randomZitat).fadeIn('slow');
};
$(document).ready(function() {
randomZitat($('.emotion article p'),$('.emotion article p').not(':hidden'));
timerid = setInterval("randomZitat($('.emotion article p'), $('.emotion article p').not(':hidden'))", 3000);
});