0

Datatablesを使用して、データを表形式で表示しています。jQuery Raty ライブラリを使用して、列に 5 つの星を表示しています。

問題は、最初のページでRatyライブラリが機能することです(DOM要素が存在するため)が、Datatablesでページサイズをページ分割、ソート、または選択すると、以前は存在しなかった新しいレコードが表示され、Ratyは表示されません暗黙のうちに働いています。

ページネーション、ソートなどで Raty を再度呼び出す必要があります。この問題を解決するより良い方法はありますか?

ヘルプ&ガイドしてください。

編集:

これは私のデータテーブルの初期化です:

$('#mydatatable').dataTable({
            "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
            "sPaginationType": "bootstrap",
            "oLanguage": {
                "sLengthMenu": "_MENU_ records per page",
                "oPaginate": {
                    "sPrevious": "Prev",
                    "sNext": "Next"
                }
            }
        });

Raty lib init は次のとおりです。

$('.star').raty({ 
                readOnly: true,
                score: 3.26
                });

HTML マークアップでは、rate 列は次のようになります。

<td><div class="star" ></div></td>

where は Datatables の別の列です。

4

1 に答える 1

1

データテーブルでfnDrawCallbackを試すことができますか?ここで使用中を参照してください:http://live.datatables.net/#preview

ただし、これは検索中のすべてのキーアップで発生するため、アプリの速度が低下する可能性があります。

すなわち

$('#mydatatable').dataTable({
    "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
        "sPaginationType": "bootstrap",
        "oLanguage": {
        "sLengthMenu": "_MENU_ records per page",
            "oPaginate": {
            "sPrevious": "Prev",
                "sNext": "Next"
        }
    },
        "fnDrawCallback": function (oSettings) {
// I would suggest adding some code here to conditionally check if it hasn't already
// been initialised on a particular .star element
        $('.star').raty({
            readOnly: true,
            score: 3.26
        });
    }
});
于 2013-03-02T15:17:38.913 に答える