Alcuni metodi di jQuery creano un nuovo ambito di esecuzione tramite l'invocazione di funzioni di callback. All'interno di queste funzioni
la parola chiave this
assume significati diversi a seconda se sia usata o meno con il wrapper $()
.
this
fa sempre riferimento all'elemento o oggetto corrente. La differenza sta nel fatto che se viene usato senza il wrapper
$()
fa riferimento ad un oggetto del DOM. In caso contrario fa riferimento ad un oggetto jQuery.
$( "p" ).each(function() {
var $p = $( this ), // oggetto jQuery
p = this, // oggetto DOM
pClass = p.className, // proprietà di un oggetto DOM
pAttrClass = $p.attr( "class" ); // metodo di un oggetto jQuery
});
Come si può notare la differenza è evidente. Bisogna sempre prestare attenzione a non confondere i due significati della parola chiave
this
.