Usando jQuery, los siguientes son idénticos en efecto:
$('a').click(function(){ doSomething(); });
$('a').on('click', function(){ doSomething(); });
Con el input
evento, sin embargo, solo el segundo patrón parece funcionar en los navegadores que he probado.
Por lo tanto, esperaría que esto funcione, pero NO (al menos actualmente):
$(':text').input(function(){ doSomething(); });
Una vez más, si desea aprovechar la delegación de eventos (por ejemplo, para configurar el evento #container
antes de que input.text
se agregue al DOM), debe tener esto en cuenta:
$('#container').on('input', ':text', function(){ doSomething(); });
Lamentablemente, de nuevo, ¡NO funciona actualmente!
Solo este patrón funciona:
$(':text').on('input', function(){ doSomething(); });
EDITADO CON MÁS INFORMACIÓN ACTUAL
Ciertamente puedo confirmar que este patrón:
$('#container').on('input', ':text', function(){ doSomething(); });
AHORA FUNCIONA también, en todos los navegadores 'estándar'.