我有一个问题我正在使用
jquery U.I标签,用ajax加载所有内容.现在,我每次点击选项卡时都会将部分视图加载到该选项卡中.
现在在这个局部视图中,它们是javascript文件,它们使用jquery来绑定该选项卡中所需的所有事件以及我正在使用的一些jquery插件.
现在,每次加载该选项卡时,所有这些脚本都会被加载.如果它被点击了10次,那么这些脚本被加载了10次,现在每个说我的按钮现在将有10个相同的事件就意味着如果有人点击那个按钮,10个事件将全部触发并执行相同的操作.
因此,我需要找到一些解决方案,将所有脚本移出并将其放在主页面上并使用jquery.live或其他解决方案.
我试图对UI选项卡使用jquery缓存,但这不起作用,因为在更改效果选项卡B时,表示选项卡B中的某些内容表示我需要重新加载选项卡B但是脚本无法重新加载,否则我会遇到相同的问题现在的问题.
解决方法
Read here是一个很好的演示文稿,涵盖jQuery的事件委托.
看完上面看看这个:
// using jQuery 1.4.2 (function($){ // You can cache the container you plan on using for event delegation. // If using $(document).ready(...) to call the below functions // your "container" element should already exist in the DOM // (the .specialAjaxLink elements don't have to exist yet). var container = $("#container"); // whenever an element with the class "specialAjaxLink" is clicked // while inside your container element execute the handler on them. container.delegate(".specialAjaxLink","click",function(){ // do something amazing... solveWorldHunger(this); // stop propagation and prevent default... return false; }); }(jQuery));