jquery .on()动态元素上的事件映射不起作用

时间:2013-01-08 20:58:35

标签: javascript jquery events

我在元素#addform中有一个动态创建的表单,带有输入字段。我正在将事件附加到字段中,如下所示:

$('input[type=text]').on({focus:function(){console.log('d');}},'#addform')

为什么这不会触发?我读到了.delegate(),但我认为它应该适用于.on()

3 个答案:

答案 0 :(得分:4)

你有相反的论点。它应该是:

$("#addform").on({...}, 'input[type=text]');

这样做的原因是对#addform进行了实际绑定。 <{1}}被调用时可能不存在input[type=text]

答案 1 :(得分:2)

我认为这更合适:

$('#addform').on({focus:function(){console.log('d');}},'input[type=text]');

答案 2 :(得分:0)

$('#addform').on('focus','input[type=text]', function(){
   console.log('d');
});

同样的事情,但我认为更具可读性。