【发布时间】:2016-07-05 09:50:22
【问题描述】:
我对 jquery delegate() 有疑问。 这是一种用于添加新测试问题和答案的表格。但不幸的是,delegate() 不适用于生成的答案输入。添加新问题效果很好,但在生成的答案中不行。
$(".questions").delegate(".qadd", "click", function() {
$(".questions").after("<div class='newq'><br><div><input placeholder='Question' type='text'/><a class='qdel' href='#'>-</a></div><div class='answers'><input placeholder='Answer' type='text'/><a class='ansadd' href='#'>+</a><label class='richtig'><input type='checkbox' name='checkbox' value='Richtig'>True</label></div></div>");
$(".qdel").click(function() {
$(this).closest(".newq").remove();
});
});
$(".answers").delegate(".ansadd", "click", function() {
$(".answers").first().after("<div class='newa'><input placeholder='Answer' type='text'/><a class='adel' href='#'>-</a><label class='richtig'><input type='checkbox' name='checkbox' value='Richtig'>True</label></div>");
$(".adel").click(function() {
$(this).closest(".newa").remove();
});
});
你可以在这里查看我的代码: demo
【问题讨论】:
-
你用的是哪个版本的jquery?
-
请注意,
delegate()是一种非常过时的方法。on()被认为是更好的做法。 -
根据文档
As of jQuery 1.7, .delegate() has been superseded by the .on() method来自documentation,您可以进一步阅读 -
@RoryMcCrossan 但 on() 也不起作用:(你能帮我写下你的例子吗:/