我有一个页面,通过解析CSV文件中的信息然后以列表形式显示来填充。填充列表后,我使用jQuery UI手风琴使其成为手风琴菜单。我的代码如下所示:
$(document).ajaxComplete(function(){
$('div#accordion > ul').accordion({collapsible: true, active:false});
});
我必须等到ajax完成,否则就不会有任何数据进入手风琴菜单。然后,我需要对这些列表项应用单击操作。当我单击列表项时,它会执行AJAX调用并从该CSV中提取更多数据。所以我在ajaxComplete函数中基本上称为AJAX请求。我不能在这里使用$(window).load();
因为初始的AJAX函数是异步调用的,因此无法工作。
问题在于,当我运行时使用它工作的点击功能,然后第二个我使用它运行两次,第三次运行4次,等等。我假设这是因为运行ajax函数,然后运行包含ajax函数的ajaxcomplete函数,并保持乘法。
我试图考虑设置一个' hasRun'变量为true和false但无法弄清楚如何将其合并到循环中以阻止它多次运行。
有什么想法吗?谢谢你的帮助!
答案 0 :(得分:1)
ajaxComplete
是全局的..如果该代码应该只在一个ajax调用之后运行,你可以把它放在那个ajax调用的完成回调中。