jQuery Load() من داخل رد اتصال ajaxComplete() مما يتسبب في تحميلات متعددة

StackOverflow https://stackoverflow.com/questions/1419162

سؤال

لقد كنت أحدق في هذا لفترة من الوقت وأنا في حيرة من أمري تمامًا.ستحتاج إلى برنامج 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. ينقر المستخدم لإظهار عرض الشرائح
  2. يمكنك ربط أحداث النقر التالية/السابقة
  3. ينقر المستخدم حوله باستخدام الأزرار التالية/السابقة
  4. يقوم المستخدم بالنقر للخروج من عرض الشرائح الحالي
  5. ينقر المستخدم على عرض شرائح آخر
  6. يمكنك ربط أحداث النقر التالية/السابقة
  7. ينقر المستخدم حوله، باستخدام الأزرار التالية/السابقة، مما يؤدي إلى استدعاء المحتوى مرتين

تحتاج إلى إلغاء ربط أحداث النقر عندما يقوم المستخدم بالنقر خارج عرض الشرائح الأول.أو لا تربط في الخطوة 6.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top