2 回答

TA貢獻1824條經驗 獲得超8個贊
我認為問題在于您click
每次顯示新編輯器時都會添加新的事件偵聽器,但不會刪除以前的事件偵聽器。
嘗試$('.add-data-btn').off()
在$('.add-data-btn').on('click'...
.

TA貢獻1780條經驗 獲得超4個贊
.on()您遇到的問題是,無論何時評估該功能,都會創建您的點擊處理程序。問題是您執行了多次。相反,您需要執行幾個步驟以獲得優雅的解決方案:
#1
action-edit在填充元素之前找到一個存在的標簽。在最壞的情況下,body我建議你需要開始試驗
$(function() {
$('body').on("click", '.action-edit',function(e){
e.stopPropagation();
$(".add-new-data").addClass("show");
$(".overlay-bg").addClass("show");
const row = $(this).closest('td').parent('tr').first();
const agendaID = row.data('agenda_id');
const form = document.querySelector('#update_form');
const url = $(form).data('action_url').replace('.ID.', agendaID);
getAgendaInfo(agendaID);
$('.add-data-btn').on('click', function (e){
e.preventDefault();
console.log(agendaID); // displays IDs of all records where sidebar was opened.
const ajaxData = grabFormData();
editAgenda(url, row, ajaxData);
})
});
});
請注意,這需要恰好運行一次,并且會自動click為您創建處理程序。
#2
找到最接近您的網格的標簽,該標簽在頁面加載時已經存在,并相應地更改選擇器。
#3
測試,測試,測試
添加回答
舉報