2010-07-20 2 views
6
(function ($) { 
     ... 
    }) (jQuery); 
+1

http://stackoverflow.com/questions/2024888/a-simple-question-on-jquery-closure – gnarf

Répondre

6

Pour éviter les conflits avec d'autres bibliothèques javascript qui utilisent également $.

Cette méthode, cependant, vous permet d'utiliser $ dans cette fonction à votre gré, pas besoin d'utiliser jQuery là.

Ce modèle est également important lors de l'écriture de plugins jquery.

+0

Merci beaucoup! Toutes les réponses et les commentaires m'ont éclairé! – kaneda

+0

@laramaki: Vous êtes les bienvenus :) – Sarfraz

2

Il crée une fonction, avec $ comme argument, et exécute immédiatement cette fonction avec jQuery comme argument. Effectivement, cela garantira que $ pointe vers jQuery à l'intérieur de votre code, même si jQuery.noConflict() est utilisé.

1

De cette façon, vous pouvez utiliser $ dans votre champ de fonction, mais à l'extérieur, jQuery n'est pas démolir l'utilisation d'autres bibliothèques de $ (par exemple, Prototype utilise également $, et certaines personnes aiment mélanger les deux ensemble)

0

En plus de la raison détaillée dans les autres réponses, il est (un peu!) Plus rapide d'accéder aux arguments de la fonction que les variables globales.

Tant que jQuery.noConflict() n'a pas été appelé, cela peut être écrit function($){ … }($) avec le même effet.

0

Appelée également fonction de rappel anonyme, comme non liée à un objet, est strictement 'fonctionnelle'. Un bon motif de conception lors de la conception de plugins avec jQuery pour éviter les conflits comme d'autres l'ont souligné!

Questions connexes