代码之家  ›  专栏  ›  技术社区  ›  MattyMc

向Div元素动态添加带有Post的单击事件侦听器时递归过多

  •  0
  • MattyMc  · 技术社区  · 8 年前

    动态添加单击处理程序到具有给定类名的div标记(本例中为“reportLink”)时,我遇到了“太多递归”错误,无法找出问题所在(范围问题?)。如果我使用控制台,代码运行良好。记录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);
                }
            });
        });
    }
    

    1 回复  |  直到 8 年前
        1
  •  1
  •   dokgu    8 年前

    也许可以尝试以下语法:

    $("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);
            }
        });
    });