2

私の問題を説明する前に、私が試みていることを正確に概説したいと思います

ここで私がやろうとしているのは、ユーザーが押すことができるボタンに基づいて、さまざまなアイテムのセットをコンテンツ フローにロードすることです。ボタンによってトリガーされる関数を既に設定しました。この関数は、AJAX 経由で (jQuery $.get を使用して) 渡した名前の値に関連付けられた項目を取得し、itemcontainer の ID を持つ div に配置しました。これはうまくいきます。

function getPictures(Gallery){
$.get( "getimages.php", {name : Gallery}, function( data ) {
for(x in data){
    $("#itemcontainer").append(data[x]);
}
addPictures();
}, "json" );
return false;

}

関数がその内部で別の関数を呼び出していることがわかります ( addPictures() )。この関数は、ContentFlow の addItem メソッドを介して itemcontainer の ID を持つ div から ContentFlow カルーセルに実際に画像を追加します。

     function addPictures(){ 
        clearBox();
        var it = ajax_cf.items;
        // Grabs pictures from 'itemcontainer' and iteratively adds them to 'flow'
        var ic = document.getElementById('itemcontainer');
        var is = ic.getElementsByTagName('img');
        for (var i=0; i< is.length; i++) {
          ajax_cf.addItem(is[i],"end");
        } 
      }  

addPictures() 関数の内部には、以前に宣言した clearBox() という関数が含まれていることがわかります。clearBox() は、コンテンツ フロー内のアイテムをループして削除することになっているため、ContentFlow カルーセル内のアイテムの古いギャラリーを削除してから、新しいアイテムを読み込むことができます。

これは、ContentFlow オブジェクト ajax_cf のプロパティであるリスト アイテム (items と呼ばれる) をループ処理することで機能します。各アイテムのインデックス 0 にあるリスト要素でメソッド rmItem を作成して実行します。これが clearBox 関数です。

 var ajax_cf = new ContentFlow('ajax_cf');
      function clearBox(){
        alert("clear");
        var it = ajax_cf.items;
        var len = it.length;
        for(var i=0; i<len; i++){
         ajax_cf.rmItem(0);
        } 
        return false;
      }

必要に応じて、ソースまたはドキュメントをここから入手できます。 http://www.jacksasylum.eu/ContentFlow/

前もって感謝します!

4

1 に答える 1