【发布时间】:2014-09-24 15:21:34
【问题描述】:
作为参考,请在下面的 JSFiddle 中查看我的示例。每次有人单击加号按钮时,都应在下方插入一个新行。除了插入的新行数始终是当前现有行数的两倍之外,这很好用。我怎样才能避免这种奇怪的行为,或者它的原因是什么?请点击第一行按钮查看问题。
var answers = [{
order: 1,
content: "placeholder"
}],
appendAnswer = function() {
answers.push({
order: answers.length + 1,
content: $(this).parent().prev().val()
});
$("#answers").empty();
$.each(answers, function(key, value) {
$("#answers").append('<div class="input-group"><input type="text" class="form-control" placeholder="Enter your answer"><span class="input-group-btn"><button type="button" class="btn btn-default" title="Add a question" data-action="add"><span class="glyphicon glyphicon-plus"></span></button><button type="button" class="btn btn-default" title="Delete this question" data-action="delete" disabled><span class="glyphicon glyphicon-trash"></span></button></span></div>');
$("#answers button[data-action='add']").one("click", appendAnswer);
});
};
$("#answers button[data-action='add']").one("click", appendAnswer);
【问题讨论】:
-
您将附加到每个
answers,而不是附加到答案容器。 -
你使用
one而不是on有什么原因吗? -
是的,我使用 .one() 因为我认为这可以解决问题。在此之前,我使用了 .on()。不过问题还是解决了。谢谢!
标签: javascript jquery events listener