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/)