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