3

我使用 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> 

我收到此错误:[cycle] terminating; 选择器找到零个元素,但使用萤火虫我看到图像列表应该在哪里......

所以我一无所知,欢迎任何帮助!

*** 请注意,错误控制台(警告部分)快疯了!

4

2 回答 2

6

而不是初始化循环 in $(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函数完成之前)执行。

于 2009-11-01T17:26:58.427 回答
3

该错误仅表示没有名为“#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);                          
于 2009-11-01T17:27:49.610 回答