مسج الدورة المساعد (عنصر صفر؟)
سؤال
لقد استخدمت 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);
لا تنتمي إلى StackOverflow