複数のロードを引き起こすajaxComplete()コールバック内からのjQuery load()
-
07-07-2019 - |
質問
私はしばらくこれを見つめていて、完全に困惑しています。これには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()が呼び出されると、コールバック関数の外部の配列に対してロードされたファイルをチェックします。これにより、シリーズの最初または最後の要素であるかどうかを判断できるため、それに応じて[前へ]ボタンまたは[次へ]ボタンを非表示にできます。 indexInArrayに格納されているinArray()値に1を追加する80から82行目のどこかに問題があることに気づきました。
あちこち検索しましたが、同様の状況を見つけることができません。どんな助けも大歓迎です。
ありがとう!
解決
このページを簡単に試しました。コードと私の直感的な反応をざっと見てみると、以前にバインドされたクリックイベントのバインドを解除していないようです。私の知る限り、これはバグの流れです:
- ユーザーがクリックしてスライドショーを表示
- 次/前のクリックイベントをバインドします
- ユーザーが次へ/前へボタンを使用してクリックする
- ユーザーが現在のスライドショーからクリックする
- ユーザーが別のスライドショーをクリックします
- 次/前のクリックイベントをバインドします
- ユーザーがnext / prevボタンを使用してクリックすると、コンテンツが2回呼び出されます
最初のスライドショーからユーザーがクリックしたときにクリックイベントのバインドを解除する必要があります。または、手順6でバインドしないでください。
所属していません StackOverflow