【问题标题】:jQuery Cycle Plugin (zero element?)jQuery Cycle 插件(零元素?)
【发布时间】:2009-11-01 14:20:09
【问题描述】:

我使用 AJAX 填充一个 div,然后,cycle plugin it

这里是page,这里是代码调用周期:

<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> 

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

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

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

【问题讨论】:

    标签: jquery cycle


    【解决方案1】:

    不要在$(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函数完成之前)。

    【讨论】:

      【解决方案2】:

      错误只是意味着没有名为“#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);                          
      

      【讨论】:

      • 一个不好的地方是,你应该确保#ani 可用,否则上面的代码将总是循环。
      猜你喜欢
      • 2012-05-14
      • 1970-01-01
      • 2011-12-27
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      相关资源
      最近更新 更多