Ho bisogno di collegare un singolo gestore di eventi a più elementi DOM usando jQuery. Attualmente sto ottenendo questo utilizzando il metodo each() di jQuery. Vedi sotto:Il modo più breve per collegare più elementi DOM a un gestore di eventi usando Jquery?
$([elm1, elm2, elm3]).each(function() {
this.click(eventHandler);
});
Mi chiedevo se c'è un modo per farlo senza utilizzare ogni metodo e chiusura. Ho pensato di essere in grado di fare qualcosa di simile:
$(elm1, elm2, elm3).click(eventHandler);
Questo tipo di affermazione funziona utilizzando Prototype.js ma non nella ragione jQuery.The faccio la domanda è perché dopo aver usato sia Prototype.js e jQuery ho ho scoperto che jQuery richiede istruzioni più semplici per ottenere gli stessi compiti in quasi tutte le aree, quindi presumo che ci sia un modo migliore per farlo?
UPDATE
Dopo un po 'di debug si scopre che il mio tentativo originale per fare questo usando:
$([elm1, elm2, elm3]).click(eventHandler);
stava fallendo becuase le variabili elm1, elm2 e elm3 dove creati utilizzando jQuery di $ funzione. Quindi il problema è cambiato ed è perché il non seguenti lavori:
var elm1 = $('#elm1');
var elm2 = $('#elm2');
var elm3 = $('#elm3');
$([elm1, elm2, elm3]).click(eventHandler);
ancora usando DOM la seguente fa:
var elm1 = document.getElementById('elm1');
var elm2 = document.getElementById('elm2');
var elm3 = document.getElementById('elm3');
$([elm1, elm2, elm3]).click(eventHandler);
@Camsoft: come hai detto 'elm1 elm2 elm3' sono stati creati usando' $ '(significa in modo dinamico), potresti usare la funzione live del jquery per loro come avevo menzionato in precedenza. – Sarfraz
@Sarfra Ok, sembra che non capisco appieno ciò che jQuery sta facendo qui. Fondamentalmente le variabili elm1, elm2 ed elm3 sono argomenti di funzione, quindi potrebbero essere oggetti DOM nativi o versioni jQuery dipendenti da ciò che viene usato quando viene chiamata la funzione. – Camsoft