我在容器中有几个元素。他们所有的事件都在功能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包含具有相同的事件相同的控制。
这是否会导致堆栈溢出?我有一些性能问题,所以我想知道这是否是原因。此外,是否有任何解决方法,也许是一个更优雅的方式来做到这一点?
如果检查if(window.XMLHttpRequest){'没有意义,如果你没有检查其他的activeX。而你正在使用jQuery,为什么在这个世界上你不使用'$ .get'? – epascarello
只是想知道 - 为什么你有jQuery时使用本机'XMLHttpRequest'?使用'$ .ajax()' – Ian
@epascarello我对ajax没有太多的了解,我只是在需要的时候复制代码。从现在开始,我将使用'$ .get'在 – enb081