2012-04-03 13 views
8

Ho due script separati che essenzialmente fanno la stessa cosa. Li ho costruiti nel tempo e ho scoperto che sto usando un paio di modi diversi per ottenere lo stesso risultato.Qual è il modo migliore per eseguire jQuery .change()

Desidero standardizzare e utilizzare il metodo delle migliori pratiche in entrambi i casi.

Un modo provo un evento di modifica è questa:

$('input[name="status"]').change(function() {}); 

Un altro modo in cui sto testando un evento di modifica è questo:

$("#email").bind("change", function(e) {}); 

Da che parte è la cosa migliore? Qual è la differenza tra il 2?

Grazie per avermi aiutato a capire questo.

risposta

16

Prima di jQuery 1.7, change() era simply a short cut per bind("change").

A partire da 1.7 tuttavia, è stato introdotto on() ed è preferito a bind(). Ciò significa ora che change() è una scorciatoia per on("change") e in effetti tutte le chiamate bind() ora chiameranno internamente on().

In breve, fanno la stessa cosa. Trovo preferibile l'uso esplicito di on() (o bind()), ma fintanto che sei coerente per tutta la tua base di codice, non vedo differenze reali.

Si potrebbe sostenere che l'utilizzo di change() oltre on("change") è "migliore", come un errore di battitura nella parola "cambiamento" getterebbe un errore di analisi in prima istanza ("indefinito non è una funzione"), ma sarebbe riuscire in silenzio con on() ... ma ovviamente i tuoi test unitari l'avrebbero capito, giusto? ;).

+0

Capito ... grazie @Matt! –

+0

Quindi @Matt, la mia sintassi del codice deve apparire come questa '$ (" # email "). On (" change ", function (e) {});'? –

+1

@ Dr.DOT: Sì ..! – Matt

Problemi correlati