0

Tobias Zeising の「simplecarousel」のデータである 2D 配列「dbArray」があります。dbArray 内の各配列は、2 つの文字列の配列です。それぞれの最初の文字列を使用して、カルーセルのページネーション ボタン内に配置したいと思います。しかし、ページネーションコードで同じループを再度実行せずにこれを行う方法がわかりません。誰かが私に手がかりを与えることができますか?!

配列を構築し、カルーセルを初期化する私のajaxは次のとおりです。

//--------------------------------------    
// COLLECT from db / build carousel
//--------------------------------------
$ajax_load.insertBefore('#content');
$.ajax({
    url: 'func/load-words.php',
    dataType: 'json',
    success: function(dbArray) {
        var items = '<ul id="carousel" class="carousel">';
        for (var i in dbArray) {
            items += '<li><h2>' + dbArray[i][0] + '</h2><p>' + dbArray[i][1] + '</p></li>';
        }
        items += "</ul>";                   
        $ajax_load.fadeOut('slow', function() {
            $(this).remove();
        });

        $("#content").html(items).fadeIn('slow', function() {
        }); 

        $("#carousel").simplecarousel({
            fade: 100,
            pagination: true
        });

    }
});

simplecarousel のページネーション部分は次のとおりです。

// include pagination
if(config.pagination != false) {
    container.after('<ul class="carousel-pagination"></ul>');
    var pagination = container.next('.carousel-pagination');
    for(var i=0;i<config.items;i++) {
        if(i==0)
            pagination.append('<li class="carousel-pagination-active">button</li>');
        else
            pagination.append('<li>button</li>');
    }

    pagination.find('li').each(function(index, item) {
        $(this).click(function() {
            slide(index,true);
        });
    });
}
4

1 に答える 1

0

私は最初、グローバルなpaginationWords変数を宣言し、ajaxループ内でdbArrayをこれに渡すことで機能させたようです。

    success: function(dbArray) {
        var items = '<ul id="carousel" class="carousel">';
        paginationWords = dbArray;
        // etc...

次に、カルーセルページネーションコード内で、ループを再度実行します。

// include pagination    
if(config.pagination != false) {
    container.after('<ul class="carousel-pagination"></ul>');
    var pagination = container.next('.carousel-pagination');

    for(var i=0;i<config.items;i++) {
        if(i==0) 
            for (var n in paginationWords) {
                pagination.append('<li>'+paginationWords[n][0]+'</li>');
            }

            //pagination.append('<li class="carousel-pagination-active">button</li>');
        // else
            //pagination.append('<li></li>');
    }

    pagination.find('li').each(function(index, item) {
        $(this).click(function() {
            slide(index,true);
        });
    });
}
于 2012-07-17T16:10:34.273 に答える