molily: Jquery Frage

Beitrag lesen

Hallo,

function testfunktion(param1,param2) {
$(document).ready(function() {
$(#param1).fadeIn(400);
$(#param0).fadeOut(100);
}
}

  
Das \*kannst\* du so machen.  
  
`$(document).ready(function() {…})`{:.language-javascript} sorgt dafür, dass die angegebene Funktion nach erfolgreichen Laden des HTML-Codes ausgeführt wird, nicht früher. Intern wird auf den [DOMContentLoaded-Event](http://molily.de/js/event-handling-onload.html) gewartet. Wenn dieser schon eingetreten ist, wird die Funktion sofort ausgeführt.  
  
Ob das in deinem Fall nötig ist, weiß ich nicht – das hängt davon ab, wann die Funktionen ausgeführt werden und ob das DOM \*vor\* dem script-Element bereits die Element enthält, auf die du zugreifen willst. Wenn ja, dann ist `$(document).ready()`{:.language-javascript} unnötig, wenn nicht, dann ist es nötig, weil dir jQuery sonst leere Resultatlisten zurückliefert, wenn du `$('#foo')`{:.language-javascript} usw. notierst. Es besteht kein Zwang, immer mit `$(document).ready()`{:.language-javascript} zu arbeiten, wenn man jQuery verwendet.  
  
Beispiel:  
  
1\. Das Script wird ausgeführt, bevor Element eingelesen wurde. Das Script kann nicht direkt auf das Element zugreifen:  
  
~~~html
<script>  
[code lang=javascript]console.log( $('#foo').length ); // 0

</script>
<p id="foo"></p>[/code]

2. Das Script kommt im DOM nach dem Element, kann also direkt darauf zugreifen. $(document).ready() ist dann nicht zwingend notwendig.

<p id="foo"></p>  
<script>  
[code lang=javascript]console.log( $('#foo').length ); // 1

</script>[/code]

3. Wenn du $(document).ready() verwendest, ist die Reihenfolge egal:

<script>  
[code lang=javascript]$(document).ready(function() {  
  // Diese Funktion wird garantiert erst nach dem vollständigen Einlesen des HTML-Codes ausgeführt  
  console.log( $('#foo').length ); // 1  
});  

~~~</script>  
<p id="foo"></p>[/code]  
  
Hintergrund:  
<http://molily.de/js/einbindung.html>  
  
Mathias

-- 
[Chaplin.js - JavaScript application architecture on top of Backbone.js](http://chaplinjs.org/)