Esiste sicuramente un caso d'uso per il primo esempio. Se sono presenti altre librerie/script JS caricati nella stessa pagina, non è possibile garantire che non sovrascrivano la variabile $
. (Questo è molto comune quando hai Prototype e jQuery nella stessa pagina).
Quindi, se Prototype utilizza $
, è necessario utilizzare jQuery
ogni volta che si desidera lavorare con jQuery. Questo può ottenere abbastanza brutto:
jQuery(function(){
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
})
Ricordate, non possiamo usare $
perché questo è un metodo da prototipo nell'ambito globale.
Ma se avvolto all'interno di questo ..
(function($){
$(function(){
// your code here
});
})(jQuery);
Il $
sarebbe in realtà fare riferimento la libreria jQuery all'interno, pur riferendosi a Prototype sulla parte esterna!Questo può aiutare a riordinare il codice:
(function($){
$(function{}(
jQuery('a', '#content').bind('click', function(){
if(jQuery(this).attr('href') == 'www.google.com')
{
alert("This link goes to Google");
jQuery(this).addClass('clicked'));
}
});
));
})(jQuery);
Si tratta di un modello comune con le estensioni jQuery per garantire che essi siano sempre aggiunti all'oggetto jQuery, ma possono essere scritti utilizzando $
per mantenere il codice ordine.
fonte
2012-03-08 02:56:07
FYI: non sono equivalenti. – Hamish