2016-11-23 5 views
-1

Ich versuche, diese Geige http://jsfiddle.net/C6LPY/2/

$(function() { 
    var parent = $("#shuffle"); 
    var divs = parent.children(); 
    while (divs.length) { 
     parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]); 
    } 
}); 

Auf meiner Website hier zu verwenden:

https://github.com/craiglockwood/confheroes/blob/master/index.html aber bin immer ein 'nicht Variable finden' Fehler.

Die Idee ist es, die divs in zufälliger Reihenfolge jedes Mal die Seite geladen wird. Die Geige funktioniert, aber irgendwie nicht mit meinem Code zu mischen.

Jede Hilfe sehr APPRE zitiert.

+0

Dann wahrscheinlich das Problem liegt mit dem Code nicht in der Geige enthalten. Versuchen Sie es weiter einzugrenzen. –

+1

Sie haben das Snippet aus Ihrem Post im "head" Ihrer Seite verwendet, aber Sie nehmen jQuery erst am unteren Rand des 'body' auf. Sie versuchen, jQuery zu verwenden, bevor die Seite weiß, was sie ist. Sie können entweder Ihr Snippet nach dem jQuery-Include verschieben oder das jQuery-Include vor Ihrem Snippet in den 'head' verschieben. – Santi

+0

Ihr Code fehlt jQuery-Bibliothek. – spooky

Antwort

0

Reihenfolge ist wichtig

Bewegen Sie den Inline-Javascript mit Ihrem IIFE nach dem Skript jQuery Referenzierung - entweder im head Element oder gegen Ende des body Element (this post für weitere Informationen über die Vorteile von ihnen lesen platzieren gegen Ende des body Elements). Andernfalls ist der jQuery-Code für das Inline-Skript nicht verfügbar. Weitere Informationen zum Einschließen externer Skripts finden Sie unter this guide.

<script type='text/javascript'> 
 
    //jQuery should not be loaded yet, so typeof $ should return undefined 
 
    console.log('typeof $ before including jQuery: ',typeof $); 
 
</script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<script src="assets/js/bootstrap.min.js"></script> 
 
<!-- at this point, jQuery should be defined, and $ should be usable as a shortcut for it.--> 
 
<script type='text/javascript'> 
 
    //ensure typeof $ is a function, otherwise it is likely the case that jQuery did not load 
 
    console.log('typeof $ after including jQuery: ',typeof $); 
 
    $(function() { 
 
    var parent = $("#shuffle"); 
 
    var divs = parent.children(); 
 
    while (divs.length) { 
 
     parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]); 
 
    } 
 
    }); 
 
</script> 
 
<div id="shuffle">ShuffleDiv 
 
    <div>child div 1</div> 
 
    <div>child div 2</div> 
 
    <div>child div 3</div> 
 
</div>

Verwandte Themen