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> 

このエラーが発生します:[サイクル]終了; セレクターによってゼロの要素が見つかりましたが、firebugを使用すると、画像リストがどこにあるべきかを確認できます...

だから私は無知です、どんな助けでも歓迎します!

***注意してください、エラーコンソール(警告セクション)はおかしくなります!

4

2 に答える 2

6

でサイクルを初期化する代わりに$(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 に答える