首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在动态创建的字段上捕获javascript事件

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

Stack Overflow用户
提问于 2011-09-01 22:36:43
回答 4查看 201关注 0票数 3

我有一个输入字段,包含名为"form_inputext1“的类。

我在按ENTER时执行了一些操作,使用了以下代码:

代码语言:javascript
运行
复制
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中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-01 22:40:14

YOu可以使用Jquery的

代码语言:javascript
运行
复制
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;
      }
});

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

代码语言:javascript
运行
复制
$('.clicker').click(function() {
    $('<div class="clicker" />').text('new').appendTo($(this)).keypress(function(event) {
        alert(event.which);
    })
})
票数 3
EN

Stack Overflow用户

发布于 2011-09-01 22:39:38

使用.live()

代码语言:javascript
运行
复制
$('.form_inputext1').live('keypress', function ( event ) {

});
票数 0
EN

Stack Overflow用户

发布于 2011-09-01 22:40:23

请改用.live().delegate()

http://api.jquery.com/live/

http://api.jquery.com/delegate/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7271905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档