首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jquery删除一些html代码

使用jquery删除一些html代码
EN

Stack Overflow用户
提问于 2012-05-16 21:48:47
回答 3查看 205关注 0票数 0

如果用户需要添加更多信息,我将使用append方法向表单添加一些输入字段和一个按钮。每个按钮都有不同的名称和id,但具有相同的类。

追加过程运行良好,但是当我想使用new按钮删除特定字段时,它就不起作用了。单击操作适用于默认存在的第一个按钮,但现在适用于在运行时添加的按钮。

代码语言:javascript
运行
复制
   rc; //is the counter which increments by one, each time.
   jQuery('#mytable').append("<div id='rev-" + rc + "' class='reviewer'>" +
                             "<input type='text' name='reviewer_email[]' id='reviewer_email" + rc + "' value=''  />" +
   "<input type='button' name='rd" + rc + "' id='rd" + rc + "' class='rrd' value='Remove' /></div>");

   jQuery(".rrd").click(function(){
    alert("Test");
   });

我一直在寻找解决方案,首先我对所有按钮使用相同的id,但现在我对每个按钮使用相同的类而不是id。

有没有人能告诉我,我哪里错了。

上面的代码不是确切的代码,而是我的想法,我是如何使用它的。

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2012-05-16 21:55:46

只能对已添加到DOM中的元素使用.click()事件处理程序。

对于动态添加的元素,您应该使用.on()

代码语言:javascript
运行
复制
$(document).on("click", ".rrd", function(event){
    // do stuff
});

或者,当使用jQuery <1.7时,您应该使用.delegate()

代码语言:javascript
运行
复制
$(document).delegate(".rrd", "click", function(event){
    // do stuff
});

请注意,不推荐使用.live(),也不推荐使用slower

从jQuery文档中:

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版本jQuery的用户应该优先使用.delegate()而不是.live()。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10619972

复制
相关文章

相似问题

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