comprendre $ vs jQuery in iife au lieu de $

J’essaie de comprendre s’il y a une différence entre:

(function($){ ... })(jQuery); 

contre.

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

Notez que jQuery a été remplacé par un $. Est-ce correct? N’est-il pas utilisé n’importe où parce que cela ne peut pas fonctionner? Cela fonctionne mais peut-être est-ce non standard? Quelqu’un peut-il s’il vous plaît expliquer cela s’il s’agit d’une erreur ou si c’est ok? Merci

D’autres frameworks JavaScript peuvent également utiliser $ comme raccourci. Pour garantir que $ est jQuery dans votre fonction, transmettez jQuery et non pas $ à la fin. Ce type de définition d’une fonction ou “zone de code” consiste à s’assurer que $ est vraiment jQuery lors du mélange de frameworks.

De nombreuses bibliothèques JavaScript utilisent $ comme nom de fonction ou de variable, tout comme jQuery. Dans le cas de jQuery, $ n’est qu’un alias pour jQuery, de sorte que toutes les fonctionnalités sont disponibles sans utiliser $. Si nous avons besoin d’utiliser une autre bibliothèque JavaScript à côté de jQuery, nous pouvons rendre le contrôle de $ à l’autre bibliothèque en appelant $ .noConflict ():

http://api.jquery.com/jQuery.noConflict/

En mode “sans conflit”, le raccourci $ n’est pas disponible et le jQuery plus long est utilisé. Par exemple:

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

Devient:

 jQuery(document).ready(function(){ jQuery(#somefunction) ... }); 

Pour utiliser le raccourci jQuery par défaut de $, vous pouvez utiliser le wrapper suivant autour de votre code:

 jQuery(document).ready(function($) { // $() will work as an alias for jQuery() inside of this function }); 

Cet encapsuleur entraînera l’exécution de votre code à la fin du chargement de la page, et le $ utilisera l’appel de jQuery. Si, pour une raison quelconque, vous souhaitez que votre code soit exécuté immédiatement (au lieu d’attendre l’événement DOM ready), vous pouvez utiliser cette méthode de wrapper à la place:

 (function($) { // $() will work as an alias for jQuery() inside of this function })(jQuery); 

Bonne lecture: http://codex.wordpress.org/Function_Reference/wp_enqueue_script#jQuery_noConflict_wrappers

De plus si vous tenez à:

Que signifie $ dans jQuery?

Cela devrait aider à étancher votre soif :) peut-être espérer que cela aide!

Il y a.
$ n’est qu’un raccourci pour jQuery. Il ne définit pas la bibliothèque, il peut donc être utilisé par d’autres frameworks.
Prenez ce cas en considération:

 // remove the jQuery shortcut ($ === undefined) var j = jQuery.noConflict(); // redefine the dollar sign window.$ = function(){ // some other plugin } // case A (function($){ alert(jQuery === $);//true })(jQuery) // case B (function($){ alert(jQuery === $);//false })($) 

Votre deuxième exemple est redondant. Si vous pouvez passer jQuery en utilisant $ alors $ est déjà jQuery, c’est-à-dire que vous auriez pu juste écrire:

 (function(){ $('#selectme'); })(); 

Le premier exemple ne vaut que si vous voulez utiliser jQuery en mode noConflict, mais utilisez toujours le $ pour référencer jQuery dans des morceaux de code sélectionnés. Autrement, techniquement, vous n’avez même pas besoin d’une fermeture (bien que les fermetures soient une bonne pratique pour de nombreuses autres raisons).