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

标签 javascript jquery events dom

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

我在按 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_inputtext1”的输入字段。

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

我该如何解决这个问题?我希望此功能适用于 onkeypress,即使对于尚未在 DOM 中的输入也是如此。

最佳答案

您可以使用 Jquery 的 live :

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

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

         return false;
      }
});

或者您可以在创建元素时添加按键事件,这会给您带来更好的性能:

$('.clicker').click(function() {
    $('<div class="clicker" />').text('new').appendTo($(this)).keypress(function(event) {
        alert(event.which);
    })
})

Example of that

关于javascript - 在动态创建的字段上捕获 javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7271905/

相关文章:

.net - C# 应用程序中的全局键盘捕获

Javascript:返回嵌套函数(异步)

jquery - 我无法获得这个改变宽度以运行多次的 jQuery 动画

javascript - 我怎样才能在页面加载时将默认页面加载到 div 中?

templates - meteor :检测嵌套模板中的事件

javascript - 将字符串拆分为具有交替一位和两位数字的数组

javascript - 将每个新行的开头与 JavaScript 正则表达式匹配

javascript - 如何将一个数组值映射到另一个数组值以生成结果

javascript - 切换播放/暂停按钮(多个音频)

android - mediaPlayer 停止时触发事件