捕获动态创建的字段上的javascript事件

捕获动态创建的字段上的javascript事件,javascript,jquery,events,dom,Javascript,Jquery,Events,Dom,我有一个名为“form_inputext1”的类的输入字段 按下ENTER键时,我正在使用以下代码执行某些操作: jQuery(".form_inputext1").keypress(function(event) { console.log(event.keyCode); if (event.keyCode == '13' || event.which == '13') { event.preventDefault(); jQuer

我有一个名为“form_inputext1”的类的输入字段

按下ENTER键时,我正在使用以下代码执行某些操作:

jQuery(".form_inputext1").keypress(function(event) {
      console.log(event.keyCode);
      if (event.keyCode == '13' || event.which == '13') {
         event.preventDefault();

         jQuery("#addMoreOptions").click();

         return false;
      }
    });
这部分很好用。它所做的一件事是,作为ajax调用的结果,它又添加了一个类“form_inputext1”的输入字段

问题是这个新添加的字段与我编写的按键事件没有关联。我假设这是因为jQuery代码只将事件附加到现有字段,而不是将来添加的字段

我怎样才能解决这个问题?我希望此函数应用于onkeypress,即使对于尚未在DOM中的输入也是如此。

使用:

您可以使用Jquery的:

或者,您可以在创建元素时添加keypress事件,这将提供更好的性能:

$('.clicker').click(function() {
    $('<div class="clicker" />').text('new').appendTo($(this)).keypress(function(event) {
        alert(event.which);
    })
})
$('.clicker')。单击(函数(){
$('').text('new').appendTo($(this)).keypress(函数(事件){
警报(event.which);
})
})

使用
.live()
.delegate()


如果使用jQuery live方法将事件绑定到类,它甚至会应用于调用live方法后添加到DOM中的元素

文件:

从文件中:


要使用此方法将单击处理程序绑定到目标元素,请执行以下操作:

$('.clickme').live('click', function() {
  // Live handler called.
});
然后再添加一个新元素:

$('body').append('Another target');

然后单击新元素也会触发处理程序。

在第二个解决方案中,我的函数是否有权访问“event”对象?如果我在某个地方声明函数,并通过名称onkeypress=“callMyFunction();”,传递它,我仍然有权访问事件吗?您可以使用方法。可能会重复这么多好的答案,将很难选择“接受”
$('.clickme').live('click', function() {
  // Live handler called.
});
$('body').append('Another target');