Javascript 如果函数有参数,如何删除事件侦听器?
我将在函数中添加一个侦听器,但在此之前,我将删除任何旧的侦听器。我认为删除不起作用,因为它在单击侦听器函数后一直调用它两次Javascript 如果函数有参数,如何删除事件侦听器?,javascript,jquery,addeventlistener,removeeventlistener,Javascript,Jquery,Addeventlistener,Removeeventlistener,我将在函数中添加一个侦听器,但在此之前,我将删除任何旧的侦听器。我认为删除不起作用,因为它在单击侦听器函数后一直调用它两次 function remove_this_rfid(rfid_id, loc_id) { let delete_rfid_button = document.getElementById("confirm_delete_rfid_id"); delete_rfid_button.removeEventListener("click&q
function remove_this_rfid(rfid_id, loc_id) {
let delete_rfid_button = document.getElementById("confirm_delete_rfid_id");
delete_rfid_button.removeEventListener("click", remove_this_rfid_confirm);
delete_rfid_button.addEventListener('click', function() {
remove_this_rfid_confirm(rfid_id, loc_id);
}, false);
}
function remove_this_rfid_confirm(rfid_id, loc_id) {
//this function has an Ajax call, which is executed twice when I click on the button after the first time
}
我发现了一个更好的解决方案,使用纯JS:
var delete_rfid_button = document.getElementById("confirm_delete_rfid_id");
delete_rfid_button.removeAttribute("onclick");
delete_rfid_button.setAttribute('onclick', 'remove_this_rfid_confirm('+rfid_id + ','+ loc_id+')');
它还使代码不那么麻烦