Single click handler per tutti i pulsanti in Javascript? È un modello? Qual è il vantaggio?

3

Mi è stato detto che quando ci sono più pulsanti sulla pagina per lo stesso scopo, ma il targeting di elementi diversi, ad es. elimina l'elemento in una griglia di elementi, dicono che è consigliabile solo registrarsi per il gestore di clic solo nella parte più in alto come "corpo" e controllare cosa è stato fatto clic invece di fare clic su ogni pulsante di cancellazione.

Qual è il vantaggio di questo? La creazione di più gestori causa problemi? È un'ottimizzazione di qualche tipo? È un modello? Ha qualcosa a che fare con le prestazioni? Dove posso leggere di più a riguardo?

    
posta Muhammad Hasan Khan 14.11.2011 - 09:33
fonte

3 risposte

1

Da @ good_computer comment

What you're talking about is very well known as Event Delegation -- it's a very good technique, and there's so much on the Internet about this topic that saying it all here would be superfluous. - greengit

    
risposta data 17.11.2011 - 16:28
fonte
2

È un "idioma", non un "modello".

Questo vantaggio in JS è che l'identità del pulsante è "questo" in modo da poter interrogare la "questa" variabile per scoprire quale pulsante è stato premuto.

È una scorciatoia elegante se hai un sacco di elaborazione simile con piccole variazioni.

    
risposta data 14.11.2011 - 11:04
fonte
0

Sarei molto scettico. Prima di tutto non inserisco mai l'onclick nell'HTML, ma lo allego sempre più tardi con jquery o simili, quindi la dimensione aggiunta dell'HTML non è un problema.

In passato avrai bisogno di un po 'di logica nel callback per capire cosa fare con l'evento click. Preferirei avere un sacco di funzioni più semplici di una molto complessa.

    
risposta data 14.11.2011 - 14:17
fonte

Leggi altre domande sui tag