从ajaxComplete()回调导致多个负载的jQuery加载()

问题描述:

我一直在盯着这个一段时间,我完全难住。你需要为此设置firebug,看看AJAX请求。他们似乎下一个和以往的每次点击后要乘,直到它的速度太慢,完全加载:从ajaxComplete()回调导致多个负载的jQuery加载()

http://www.ftsdev.com/freegreen/virtual-tour-prototype/virtual-tour.html

所有的JavaScript源出于此是:

/freegreen/virtual-tour-prototype/js/virtual-tour.js 

功能看:

launchVirtualTour() 
$('#vt-next').one('click',function() 
$('#vt-prev').one('click',function() 

当调用ajaxComplete()时,我检查加载到回调函数以外的数组的文件。这使我可以确定它是否是系列中的第一个或最后一个元素,以便我可以相应地隐藏上一个或下一个按钮。我有一个恐惧,问题在80-82行,我在存储在indexInArray中的inArray()值添加1。

我已经四处搜索,但找不到任何类似的情况,任何帮助,非常感谢。

谢谢!

我简单地试了一下页面。从代码的快速浏览和我的直觉反应看来,您似乎并未解除先前绑定的点击事件的绑定。据我可以告诉这是流向你的错误:

  1. 用户点击,弹出一个幻灯片
  2. 您绑定一个/上点击事件
  3. 用户点击周围,使用下一个/上按钮
  4. 用户点击了当前幻灯片
  5. 用户点击进入另一个幻灯片
  6. 您绑定一个/上点击事件
  7. 用户点击周围,使用NEX t/prev按钮,导致内容被调用两次

当用户单击第一个幻灯片放映时,您需要解除绑定点击事件。或者不要在步骤6中绑定。

+0

非常感谢Sam,我会在明天早上尝试基于上述第一件事进行调试,并让您知道它是如何发生的。 – 2009-09-14 03:31:01

+0

哈,我刚刚开了一枪,它工作。我将事件移动到ajaxComplete之外,并将它们作为实时事件,以便它们能够附加到加载了AJAX的内容的内容,并且工作正常。 非常感谢这个Sam,我从来没有想过我可以很快解决这个问题! – 2009-09-14 03:35:40

+0

很高兴听到凯文。 :-)其余的祝你好运! – 2009-09-14 03:40:12