سؤال

لقد استخدمت AJAX لتعبئة DIV وبعد ذلك، دورة البرنامج المساعد !

هنا هو صفحة, ، وهنا هي دورة الدعوة رمز:

<script type="text/javascript">
    $(function() {
        $("#photoviewer").load("photo-list.shtml #ani");
        alert ('photo loaded!');
        $(document).ready(function() {
            $('#ani').cycle({ fx:      'turnDown',
                              speed:   'fast',
                              timeout: 0,
                              pager:   '#nav' });
            alert('done!');     
        });
    });
</script> 

أحصل على هذا الخطأ: [دورة] إنهاء؛ عناصر صفر موجودة من قبل محدد، ولكن مع Firebug أرى قائمة الصور كما يجب أن تكون ...

لذلك أنا جاهل، أي مساعدة مرحبا!

*** لاحظ ملاحظة، وحدة التحكم في الخطأ (قسم التحذير) مجنونا!

هل كانت مفيدة؟

المحلول

بدلا من تهيئة دورة في $(document).ready(), ، تفعل ذلك في load رد الاتصال بحيث لا ينفذ حتى تكمل مكالمة AJAX الخاصة بك وبنيت #ani div:

    $(function() {
        $("#photoviewer").load("photo-list.shtml #ani", function() {
            $('#ani').cycle({ fx:      'turnDown',
                              speed:   'fast',
                              timeout: 0,
                              pager:   '#nav' });
        });
    });

كما تقف، فإن تهيئة البرنامج المساعد الدورة يتم تنفيذها قبل تحميل الصور (قبل load انتهت الوظيفة).

نصائح أخرى

الخطأ يعني فقط عدم وجود محدد باسم "#ani" المتاحة يبدو وكأنه عقدة "#ani" هي عقدة "#photoviewer" وعند اكتمال طلب Ajax، ثم يضيف "#ani".

بعد الاتصال:

 $("#photoviewer").load("photo-list.shtml #ani"); 

جرب هذا:

var interval = setInterval(function(){ 
  if(jQuery("#ani").length > 0) {
    clearInterval(interval); 
    jQuery('#ani').cycle({fx:'turnDown', speed:  'fast', timeout: 0, pager:  '#nav'}); 
  }
}, 1);                          
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top