Usando jQuery, os seguintes são idênticos em efeito:
$('a').click(function(){ doSomething(); });
$('a').on('click', function(){ doSomething(); });
Com o input
evento, no entanto, apenas o segundo padrão parece funcionar nos navegadores que testei.
Assim, você esperaria que isso funcionasse, mas NÃO (pelo menos atualmente):
$(':text').input(function(){ doSomething(); });
Novamente, se você quiser aproveitar a delegação de eventos (por exemplo, para configurar o evento #container
antes de sua input.text
inclusão no DOM), isso deve ser lembrado:
$('#container').on('input', ':text', function(){ doSomething(); });
Infelizmente, novamente, NÃO funciona atualmente!
Somente esse padrão funciona:
$(':text').on('input', function(){ doSomething(); });
EDITADO COM MAIS INFORMAÇÕES ATUAIS
Certamente posso confirmar que esse padrão:
$('#container').on('input', ':text', function(){ doSomething(); });
AGORA FUNCIONA também, em todos os navegadores 'padrão'.