我知道问题所在,但我不知道解决方案。
我有4个文件可以说。 index.php文件,ajax.php,more-ajax.php文件和我的custom.js文件。
在我的索引文件中,我有一个<div id="content"></div>
元素,它将从ajax.php文件中加载内容。现在让我们在这个ajax.php文件中说我有以下<div id="moreContent"></div>
现在我的custom.js文件中我在index.php和ajax.php文件中都包含以下jquery代码:
$(document).ready(function(){
$("#select-menu").change(function(){
$("#content").load('ajax.php');
});
$("#select-menu-two").change(function(){
$("#moreContent").load('more-ajax.php');
});
});
现在,这可行,但我可以看到我正在进行的每个调用一遍又一遍地调用custom.js文件,导致请求呈指数级增长。解决这个问题的方法是从ajax.php中删除custom.js。但是......然后#select-menu-two的第二个ajax函数不再有效,我无法从more-ajax.php加载内容。
有更好的方法吗?我可以看一下代码的例子吗?
谢谢, SC
答案 0 :(得分:1)
首先删除先前添加的事件处理程序,避免为元素添加多个类似的事件处理程序:
$(document).ready(function(){
$("#select-menu").off('change');
$("#select-menu").change(function(){
$("#content").load('ajax.php');
});
$("#select-menu-two").off('change');
$("#select-menu-two").change(function(){
$("#moreContent").load('more-ajax.php');
});
});