我在向具有给定类名(本例中为“reportLink”)的 div 标签动态添加点击处理程序时遇到“太多递归”错误,并且无法弄清楚问题是什么(范围问题?)。如果我console.log div 的innerText,代码可以正常工作,但是当我向其中添加ajax post 时,代码会失败。有人看到这里的问题吗?感谢您的帮助!
(function () {
const links = document.querySelectorAll(".reportLink");
const userName = document.getElementById("userName");
for (let i = 0; i < links.length; i++) {
let link = links[i];
createEvent(link);
}
function createEvent(element) {
var etext = element.innerText;
element.addEventListener("click", function () {
$.ajax({
url: 'route/myroute',
type: 'POST',
data: { user: userName, reportName: etext },
success: function (data) {
//console.log(data);
}
});
});
}
})();
最佳答案
也许可以尝试以下语法:
$("body").on("click", ".reportLink", function(e) {
// Use $(this) for the element and get your other data..
$.ajax({
url: 'route/myroute',
type: 'POST',
data: { user: userName, reportName: etext },
success: function (data) {
//console.log(data);
}
});
});
关于javascript - 通过 Post 动态添加点击事件监听器到 Div 元素时递归过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40727671/