javascript - 通过 Post 动态添加点击事件监听器到 Div 元素时递归过多

标签 javascript jquery ajax recursion addeventlistener

我在向具有给定类名(本例中为“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/

相关文章:

javascript - 如何交换表中的两组行

javascript - 如何使用 RxJS 将我的数据映射为正确的格式

javascript - 在不破坏兼容性的情况下以交互方式在javascript中加载图像

javascript - JQuery AJAX 尝试解析 XML,即使使用 "dataType": "JSON"

javascript - 如何在 Javascript 中使用从 URL 返回的 JSON?

jquery - 移动鼠标并保留 .mouseenter 功能

jquery - 你如何使用 jQuery Deferred 数组?

jquery - 编写 jQuery 选择器不区分大小写的版本

javascript - 使用动态内容动态复制 div

javascript - 如何在鼠标移过表中的行时将鼠标指针更改为手势并更改行的颜色