249 votes

Qu'est-ce que $ (function () {}); faire?

Parfois, je crée une fonction et l'appelle plus tard.

Exemple:

 function example { alert('example'); }
example(); // <-- Then call it later
 

D'une manière ou d'une autre, certaines fonctions ne peuvent pas être appelées et je dois appeler celles-ci:

 $(function() { });
 

Qu'est-ce que $(function() {}); et (function() { }); signifie, et quelle est la différence / but de ceux-ci?

379voto

Russ C Points 8403
$(function() { ... });

est juste jQuery à court de main pour

$(document).ready(function() { ... });

Ce qu'il est destiné à faire (entre autres choses), c'est de s'assurer que votre fonction est appelée une fois que tous les éléments du DOM de la page est prête à être utilisée.

Cependant, je ne pense pas que ce soit le problème que vous rencontrez - pouvez-vous préciser ce que vous entendez par 'd'une certaine façon, certaines fonctions ne peuvent pas être appelé et j'ai à l'appel de ces fonctions à l'intérieur"? Peut-être poster un peu de code pour montrer ce qui ne fonctionne pas comme prévu ?

Edit: Re-lecture de votre question, il se peut que votre fonction est en cours d'exécution avant que la page a fini de chargé, et donc de ne pas s'exécuter correctement; le mettre dans $(function) aurait pour effet de corriger cela!

18voto

Christopher Harris Points 7887

Voici un appel de fonction jQuery:

 $(...);
 

Quelle est la "fonction jQuery". $ est une fonction et $ (...) vous appelez cette fonction. Le premier paramètre que vous avez fourni est le suivant:

 function() {}
 

Le paramètre est une fonction que vous spécifiez et la fonction '$' appellera la méthode fournie lors du chargement du DOM.

11voto

C'est juste un raccourci pour $(document).ready() , comme dans: $(document).ready(function() { YOUR_CODE_HERE }); . Parfois, vous devez l’utiliser parce que votre fonction est en cours d’exécution avant le chargement du DOM.

Tout est expliqué ici: http://docs.jquery.com/Tutorials:Introducing_$ (document) .ready ()

6voto

Terry Points 7652

Je pense que vous pouvez être source de confusion Javascript avec jQuery méthodes. La vanille ou de la plaine Javascript est quelque chose comme:

function example() {
}

Une fonction de cette nature peut être appelé à tout moment, n'importe où.

jQuery (une bibliothèque construite sur Javascript) a des fonctions intégrées qui est généralement requis le DOM pour être entièrement rendue avant d'être appelé. La syntaxe pour quand c'est terminé:

$(document).ready(function() {
});

Ainsi, une fonction jQuery qui est préfixé avec l' $ ou le mot jQuery générale est appelée à partir de l'intérieur de cette méthode.

$(document).ready(function() {        
    // Assign all list items on the page to be the  color red.  
    //      This does not work until AFTER the entire DOM is "ready", hence the $(document).ready()
    $('li').css('color', 'red');   
});

Le pseudo-code pour que le bloc est la suivante:

Lorsque le modèle d'objet de document $(document) est prête .ready(), appelez la fonction suivante function() { }. Dans cette fonction, vérifiez tous <li>s'sur la page d' $('li') et à l'aide de la méthode jQuery .CSS() pour définir la propriété CSS "couleur" à la valeur "rouge" .css('color', 'red');

2voto

imm Points 3576

Il s'agit d'un raccourci pour $(document).ready() , qui est exécuté lorsque le navigateur a fini de charger la page (ce qui signifie ici "lorsque le DOM est disponible"). Voir http://www.learningjquery.com/2006/09/introducing-document-ready . Si vous essayez d'appeler example() avant que le navigateur n'ait fini de charger la page, cela risque de ne pas fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X