jQuery load () dall'interno di ajaxComplete () callback che causa più carichi
-
07-07-2019 - |
Domanda
Lo sto fissando da un po 'e sono completamente perplesso. Per questo avrai bisogno di firebug, dai un'occhiata alle richieste AJAX. Sembrano moltiplicarsi dopo ogni clic del prossimo e del precedente, fino a quando non è troppo lento per caricarsi completamente:
http://www.ftsdev.com/freegreen /virtual-tour-prototype/virtual-tour.html
Tutta la fonte JavaScript per questo è in:
/freegreen/virtual-tour-prototype/js/virtual-tour.js
Funzioni da guardare:
launchVirtualTour()
$('#vt-next').one('click',function()
$('#vt-prev').one('click',function()
Quando viene chiamato ajaxComplete (), controllo il file caricato su un array al di fuori della funzione di callback. Questo mi permette di determinare se è il primo o l'ultimo elemento della serie in modo da poter nascondere di conseguenza i pulsanti Precedente o Successivo. Ho l'impressione che i problemi si trovino da qualche parte nelle righe 80-82 dove aggiungo 1 al valore inArray () memorizzato in indexInArray.
Ho cercato in giro ma non riesco a trovare situazioni simili là fuori, qualsiasi aiuto è molto apprezzato.
Grazie!
Soluzione
Ho provato brevemente la pagina. Da una rapida occhiata al codice e alla mia reazione istintiva, sembra che tu non stia legando eventi di clic precedentemente associati. Per quanto ne so, questo è il flusso verso il tuo bug:
- L'utente fa clic per visualizzare una presentazione
- Si vincolano gli eventi di clic successivo / precedente
- L'utente fa clic, usando i pulsanti avanti / indietro
- L'utente fa clic fuori dalla presentazione corrente
- L'utente fa clic in un'altra presentazione
- Si vincolano gli eventi di clic successivo / precedente
- L'utente fa clic, usando i pulsanti next / prev, facendo sì che il contenuto venga chiamato due volte
È necessario separare gli eventi clic quando l'utente fa clic fuori dalla prima presentazione. Oppure non associare al passaggio 6.