jQuery load () из обратного вызова ajaxComplete (), вызывающего множественные загрузки - PullRequest
0 голосов
/ 14 сентября 2009

Я смотрю на это некоторое время, и я полностью в замешательстве. Для этого вам понадобится firebug, посмотрите на запросы AJAX. Кажется, они умножаются после каждого щелчка следующего и предыдущего, пока не загрузятся слишком медленно:

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, где я добавляю 1 к значению inArray (), хранящемуся в indexInArray.

Я искал, но не могу найти подобных ситуаций, любая помощь очень ценится.

Спасибо!

1 Ответ

1 голос
/ 14 сентября 2009

Я кратко опробовал страницу. Судя по быстрому просмотру кода и моей интуитивной реакции, похоже, что вы не отменяете ранее связанные события нажатия. Насколько я могу судить, это поток вашей ошибки:

  1. Пользователь нажимает, чтобы вызвать слайд-шоу
  2. Вы связываете события следующего / предыдущего клика
  3. Пользователь щелкает по кнопке «Далее / Предыдущая»
  4. Пользователь кликает из текущего слайд-шоу
  5. Пользователь нажимает на другое слайд-шоу
  6. Вы связываете события следующего / предыдущего клика
  7. Пользователь щелкает по кнопке «следующий / предыдущий», вызывая двойной вызов контента

Вам необходимо отменить привязку событий щелчка, когда пользователь щелкает из первого слайд-шоу. Или не связывайте на шаге 6.

...