Le raccourci suivant est-il pour $(document).ready
?
(function($){
//some code
})(jQuery);
Je vois que ce modèle est beaucoup utilisé, mais je ne trouve aucune référence à ce modèle. S'il s'agit d'un raccourci $(document).ready()
, y a-t-il une raison particulière pour laquelle cela pourrait ne pas fonctionner? Dans mes tests, il semble toujours se déclencher avant l'événement prêt.
javascript
jquery
document-ready
shorthand
Mark Brown
la source
la source
var somevar;
) ne changera pas le contenu des variables du même nom en dehors de la fonctionRéponses:
Le raccourci pour
$(document).ready(handler)
est$(handler)
(oùhandler
est une fonction). Voyez ici .Le code dans votre question n'a rien à voir avec
.ready()
. Il s'agit plutôt d'une expression de fonction immédiatement invoquée (IIFE) avec l'objet jQuery comme argument. Son but est de restreindre la portée d'au moins la$
variable à son propre bloc afin qu'elle ne provoque pas de conflits. Vous voyez généralement le modèle utilisé par les plugins jQuery pour vous en assurer$ == jQuery
.la source
iife
ou passez directement au célèbre billet de blog de Cowboy Alman . Détails… sheesh.La sténographie est:
la source
$
.jQuery(function($, undefined) {});
$(document).ready(function(){ });
$
gratuitement comme premier argument.Le raccourci correct est le suivant:
Le code que vous avez publié…
… Crée une fonction anonyme et l'exécute immédiatement en lui
jQuery
faisant passer l'argument$
. Tout ce qu'il fait est de prendre le code à l'intérieur de la fonction et de l'exécuter comme d'habitude, car il$
s'agit déjà d'un alias pourjQuery
. :RÉla source
Ce n'est pas un raccourci pour
$(document).ready()
.Le code que vous avez publié contient le code interne et rend jQuery disponible
$
sans polluer l'espace de noms global. Cela peut être utilisé lorsque vous souhaitez utiliser à la fois le prototype et jQuery sur une seule page.Documenté ici: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immediately-invoked-function-expression
la source
Ces lignes spécifiques sont l'encapsuleur habituel pour les plugins jQuery:
"... pour vous assurer que votre plugin n'entre pas en collision avec d'autres bibliothèques qui pourraient utiliser le signe dollar, il est préférable de passer jQuery à une fonction auto-exécutable (fermeture) qui le mappe au signe dollar afin qu'il puisse ' t être écrasé par une autre bibliothèque dans le cadre de son exécution. "
Depuis http://docs.jquery.com/Plugins/Authoring
la source
Le raccourci sécurisé multi-framework pour prêt est:
En effet, jQuery n'est pas le seul framework qui utilise les variables
$
etundefined
la source
(function($){ ... })(jQuery);
ready
plutôt appelée immédiatementUne variante encore plus courte consiste à utiliser
où
$
représente jQuery et()=>{}
est appelé «fonction flèche» qui héritethis
de la fermeture. (De sorte quethis
vous en aurez probablementwindow
au lieu dedocument
.)la source
Et ça?
la source