【发布时间】:2019-02-15 03:18:09
【问题描述】:
我正在尝试将 delete id 传递给引导模式,该模式在确认时调用具有该 id 的删除元素函数。一切都是第一次工作,但由于某种原因,当我尝试第二次、第三次等时,它总是尝试传入最初触发的元素的位置 ID,这可能不再存在。
如果我在调用引导模式之前移动 removeElement(deleteID) 函数调用,每次一切正常 - 但是没有用户确认 - 只有在尝试在引导模式中添加此删除函数调用时,ID 才会出现得到存储。如何确保每次都可以在引导模式函数中访问新 ID?
document.addEventListener("click", removeLocationListener);
function removeLocationListener(e) {
var element = e.target;
if (element.tagName == 'A' && element.classList.contains("delete-location")) {
var deleteID = element.getAttribute("data-location-id")
e.preventDefault();
$('#removeLocation').modal('show')
$("#removeLocation").on("click", ".btn-danger", function () {
removeElement(deleteID)
$('#removeLocation').modal('hide')
});
}
}
function removeElement(elementId) {
// Removes an element from the document
var element = document.getElementById(elementId);
element.parentNode.removeChild(element);
}
【问题讨论】:
-
您的
$("#removeLocation").on("click" ...不断添加事件侦听器,因此当您单击第二个删除链接时,removeElement函数会运行两次。
标签: javascript jquery twitter-bootstrap bootstrap-4 bootstrap-modal