我目前有一些JS会根据HTML中存储的数据属性生成按钮,这将生成2个按钮:
Plus按钮添加可重复的块(如果只有一个块,将会/只应显示加号按钮)
删除可重复字段的减号按钮(当有多个块时将显示/将显示)
事情是,我的按钮工作正常,但当我为他们添加事件处理程序时,按照我的要求,点击它们没有任何反应,我不知道为什么,希望你能指出我正确的方向。
问候!
P.S jQuery代码
$('.glyphicon-plus-sign').on("click", function () {
prevInput = $(this).prev('input');
count = $(prevInput).attr('data-count');
countIncremented = count++;
br = '<br/><br/>';
inputElement = '<input type="' + $(prevInput).attr("type") + '" name="' + $(prevInput).attr("name") + countIncremented + '" data-count="' + countIncremented + '"/>';
$(br + inputElement + plusMinusButtons).insertAfter('.' + $(prevInput).attr("name") + ':last');
});
$('.glyphicon-minus-sign').on("click", function () {
prevInput = $(this).prev('input');
$(this).remove(prevInput).remove(this);
});
$("button").click(function () {
console.log("here");
x = $('#form').serializeArray();
$.each(x, function (i, field) {
console.log(field.name + ":" + field.value + " ");
});
答案 0 :(得分:1)
我目前有一些JS会生成按钮
动态添加按钮意味着您必须以不同的方式处理事件。您需要执行以下操作:
$('body').on("click", '.glyphicon-minus-sign', function () {
...
}
$('body').on("click", '.glyphicon-plus-sign', function () {
...
}
基本上,您现在正在侦听body元素的点击,而不是实际按钮(实际上可能尚未存在)。任何其他静态创建的按钮都不会受到影响。