我动态添加按钮并为其设置事件:
$(document).on("click", ".del-but", remove);
在删除功能中,我有一个confirm
对话框,为每个添加的按钮触发(3个按钮=> 3次)
function remove() {
var buttonName = $(this).attr("name");
if (!confirm("Are you sure you want to remove this " + buttonName + "?\nAll the input will be lost!"))
return;
//stuff...
}
虽然没有调用其余的代码(东西),只有对话框。如何阻止对话框多次触发?
function addCategory(btn) {
var $addCategory = "<fieldset>";
$addCategory += "<legend>Category " + createRemoveButton("category") + "</legend>";
$addCategory += '@Html.Label("Name")';
$addCategory += '@Html.TextBox("name")';
$addCategory += "<br />";
$addCategory += addCategoryButton;
$addCategory += addChartButton;
$addCategory += "</fieldset>";
$(btn).parent().append($addCategory);
$(document).one("click", ".del-but", remove);
$(btn).siblings(".add-chart-but").remove();
}
function createRemoveButton(name) {
return "<button class=\"del-but\" type=\"button\" name =\"" + name + "\">Remove</button>";
}
答案 0 :(得分:0)
要从点击的按钮中删除该事件,您只需从中删除该类del-but
,如下所示:
function remove() {
// stuffs
$(this).removeClass('del-but');
}
如果您将此类用于CSS或其他事物,请仅使用其他类来绑定和删除事件。希望这有帮助
答案 1 :(得分:0)
这是做什么的
$(document).one("click", ".del-but", remove);
在函数addCategory中,如果已使用
定义了事件$(document).on("click", ".del-but", remove);
只需删除上一行。
答案 2 :(得分:0)
问题是你为在线调用的每个创建按钮函数创建事件;
$(document).one("click", ".del-but", remove);
您只需拨打一次足够的时间来使用此功能;
$(document).on("click", ".del-but", remove);
您可以在here
中查看