2013-04-26 13 views
5

Da http://api.jquery.com/on/:intesa jQuery documentazione API Sintassi

.on(events [, selector ] [, data ], handler(eventObject)) 

So che questo potrebbe sembrare un po 'stupido, ma chiunque potrebbe spiegare la sintassi di qui?

Cosa significa []? Penso che ciò significhi che potresti aggiungere diverse opzioni (selettori/dati) ma, dato che puoi anche aggiungere diversi eventi, perché lo standard events non ha parentesi quadre?

Qui c'è anche un esempio .on():

$(document).on("click", ".item", function() { 
alert("hi"); 
}); 

dove viene il data scritto nella sintassi del metodo entrano in gioco qui?

+1

Credo che siano facoltativi, gli eventi sono obbligatori. – KryptoniteDove

risposta

2

Le parentesi quadre indicano che un argomento è facoltativo. Per il metodo .on(), sia selector sia data sono facoltativi, ma sono richiesti events e handler.

Ad esempio:

$(something).on("click", function() {}); 
//    ^events ^handler 

$(something).on("click", ".child", function() {}); 
//    ^events ^selector ^handler 

$(something).on(function() {}); // Won't work, missing events argument 
1

Il [] indica che i parametri sono facoltativi. È possibile avere zero o uno selector se data.

La chiamata di esempio omette il parametro data.

0

Le parentesi quadre indicano che il parametro è facoltativo. Quindi puoi opzionalmente fornire un selettore (per la delega degli eventi) o dati (da usare all'interno della funzione del gestore di eventi), ma non devi.

Per quanto riguarda il tuo esempio specifico, non viene passato alcun valore a data (perché non devi farlo). Nel codice per la funzione jQuery on determina in quale parametro il valore è effettivamente basato in base al tipo di valore.