我在一个容器中有几个元素。它们的所有事件都在一个函数内处理events()。
单击容器内的按钮时,我将容器的 html 替换为来自 AJAX 请求的响应。
function events() {
    $(".btn").on("click", function() {
     ...
    }); 
    $(".txt").on("keyup", function() {
     ...
    });
    $(".btn2").on("click", function() {
                var xmlhttp;
                if (window.XMLHttpRequest) {
                    xmlhttp = new XMLHttpRequest();
                }
                xmlhttp.onreadystatechange = function() {
                    if (xmlhttp.readyState == 4) {
                       $(".container").html(xmlhttp.responseText); 
                       events(); // ***
                    }
                }
                url = 'handlers/gethtml.ashx';
                xmlhttp.open("GET", url, true);
                xmlhttp.send(null);
        });
}
现在,我需要用事件重新绑定所有控件,因此在更改 html 后,     $(".container").html(xmlhttp.responseText);我在自身内部调用函数,因为新的 html 包含具有相同事件的相同控件。
这会导致堆栈溢出吗?我有一些性能问题,所以我想知道这是否可能是原因。此外,是否有任何解决方法,也许是一种更优雅的方式来做到这一点?