0
我有一个单击事件下的一个删除jQuery对话框弹出下的2个点击事件。现在正在做什么,当我单击“删除课程”时,它会打开一个对话框弹出窗口,我可以单击“是”确认删除,或者单击“否”关闭对话框。(jQuery)如何避免在另一个点击事件下注册多个点击事件?
它正在工作,但是当我登录“否”按钮并单击它两次时,开发人员工具控制台显示我已单击它3次。就像第一个点击之后的每次点击一样,控制台将其加倍。我无法解决如何分离点击事件并仍然在相同的对话框弹出框内工作?
<div class="table-content">
..........
@Html.ActionLink("Delete", "Delete", new { id = item.CourseID }, new { @class = "deletebtn", @id = item.CourseID })
</div>
<div id="dialog" title="Delete Department" style="display: none">
<p>Are you sure you want to delete this Course?</p>
<button id="confirm-deletion">Yes</button>
<button id="abort-deletion">No</button>
</div>
<script>
$(function() {
$(".deletebtn").on("click", function (e) {
e.preventDefault();
$('#dialog').dialog();
var btnobj = $(this);
var id = btnobj[0].id;
$('#confirm-deletion').on("click", function() {
var token = $('input[name="__RequestVerificationToken"]').val();
var data = { id: id, __RequestVerificationToken: token };
$.ajax({
type: "POST",
url: "@Url.Action("Delete","Course")",
data: data,
//ajaxasync: true,
success: function() {
$("#dialog").dialog("close");
$('div.table-content').empty().load(' .table-content');
//console.log("success");
},
error: function() {
console.log("failed");
}
});
});
$('#abort-deletion').on("click", function() {
console.log("NoClick");
$("#dialog").dialog("close");
});
});
});
</script>
我认为这是后半部分。哪一个会是父按钮? “(”.deletebtn“)。on(”click“)'? – StraightUp
@StraightUp:我不知道你的意思是“父母按钮”。但是当你自己定义这些点击处理程序时会发生什么情况,而不是每次点击重复定义它们?问题中的代码并不意味着这些元素是动态创建的,这只是做你正在做的事情的一个常见原因。 – David
当我说“父母按钮”时,我指的是你提到的“共同父母”。对不起,因为我是jQuery的新手,我不熟悉很多术语。 ...但现在,当我在一个函数下分离每个单击事件时,“No”按钮可以正常工作,因为它只是关闭了对话框。但是,当我确认它时,“是”按钮无法删除该项目。 – StraightUp