Necesito adjuntar un único controlador de eventos a múltiples elementos DOM usando jQuery. Actualmente estoy logrando esto usando el método each() de jQuery. Vea debajo:¿La manera más corta de unir múltiples elementos DOM a un manejador de eventos usando Jquery?
$([elm1, elm2, elm3]).each(function() {
this.click(eventHandler);
});
Me preguntaba si hay una manera de hacer esto sin usar cada método y cierre. Pensé que iba a ser capaz de hacer algo como:
$(elm1, elm2, elm3).click(eventHandler);
Este tipo de declaración funciona usando Prototype.js pero no en jQuery.The razón por la que la pregunta es porque después de usar tanto Prototype.js y jQuery tengo descubrí que jQuery requiere declaraciones más simples para lograr las mismas tareas en casi todas las áreas, así que supongo que debe haber una forma mejor de hacerlo.
ACTUALIZACIÓN
Después de una cierta depuración resulta que mi original intento de hacer esto usando:
$([elm1, elm2, elm3]).click(eventHandler);
estaba fallando becuase las variables elm1, elm2 y elm3 donde creado usando jQuery $ función. Así que el problema ha cambiado y es por eso hace lo siguiente no funciona:
var elm1 = $('#elm1');
var elm2 = $('#elm2');
var elm3 = $('#elm3');
$([elm1, elm2, elm3]).click(eventHandler);
sin embargo, el uso de DOM el siguiente hace:
var elm1 = document.getElementById('elm1');
var elm2 = document.getElementById('elm2');
var elm3 = document.getElementById('elm3');
$([elm1, elm2, elm3]).click(eventHandler);
@Camsoft: como dijiste que 'elm1 elm2 elm3' se creó usando' $ '(significa dinámicamente), puedes usar la función en vivo de jquery para ellos como lo mencioné anteriormente. – Sarfraz
@Sarfra Ok, bien, parece que no entiendo completamente qué está haciendo jQuery aquí. Básicamente, las variables elm1, elm2 y elm3 son argumentos de funciones, por lo que tal vez sean objetos DOM nativos o versiones de jQuery, dependiendo de qué se utilice cuando se llame a la función. – Camsoft