【问题标题】:Newly added element with multiple div's using JQuery [duplicate]使用 JQuery 新添加的具有多个 div 的元素 [重复]
【发布时间】:2014-12-12 17:31:04
【问题描述】:

为什么我无法获得这个新添加的多个子 div 的 text。我正在使用 JQuery 添加这个动态元素。这是我的示例小提琴:JSFIDDLE

有人可以向我解释我哪里出错了吗?

脚本

var counter = 0;

$("button").click(function() {

$("<div class='child-list-workorder'>\
                            <div class='list-workorder'>\
                               <div class='list-workorder-header'>\
                                 <h3 id='" + counter + "' class='list-workorder-id'>click me " + (++counter) + "</h3>\
                               </div>\
                               <p>" + counter + "</p>\
                            </div>\
                        </div>").appendTo("div.parent-list-workorder");

    });


$("div.list-workorder-header").on("click", "h3.list-workorder-id", function(){
    alert(this.id);
});

【问题讨论】:

  • 您没有正确使用事件委托 - jsfiddle.net/arunpjohny/qx1qao6y/3
  • 事件处理程序应该绑定到一个静态元素,在本例中为.parent-list-workorder
  • 请将代码也作为问题的一部分发布,而不仅仅是小提琴

标签: jquery css ajax dynamic elements


【解决方案1】:

您必须使用delegated event,因为 html 是动态生成的:

$(document).on("click", "h3.list-workorder-id", function(){
    alert(this.id);
});

您的 child-list-workorder 类的 div 也是动态生成的:

$(".child-list-workorder").on("click", "h3.list-workorder-id", function(){
...............

不会工作,因为它也是动态生成的。

或者您可以使用具有在 DOM 加载时加载的类 parent-list-workorder 的父 div:

$(".parent-list-workorder").on("click", "h3.list-workorder-id", function(){
    alert(this.id);
});

WORKING UPDATED FIDDLE

【讨论】:

  • 谢谢伙计!有用!但是我如何将我的.on SELECTOR 更改为我的 Class DIV 之一,即.list-workorder 然后我想提醒我的&lt;h3&gt; 的值?请查看我更新的JSFIDDLE
  • @Unknownymous2 使用find() 见:jsfiddle.net/qx1qao6y/8
猜你喜欢
  • 2014-08-25
  • 2018-08-29
  • 1970-01-01
  • 2013-08-14
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多