2013-03-02 66 views
0

我使用Datatables以表格形式顯示數據。我正在使用jQuery Raty library在一列中顯示5顆星。如何在分頁上調用javascript並記錄Datatables的選擇?

問題是:在第一頁上,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初始化如下:

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

在HTML標記時,RATY列的樣子:

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

其中只是Datatables中的另一列。

+1

向我們展示你的問題的代碼。已添加代碼 – Lowkase 2013-03-02 15:02:46

+0

。請指導。 – LittleLebowski 2013-03-02 15:10:59

回答

1

可以嘗試的DataTable的fnDrawCallback?看到它在這裏使用:http://live.datatables.net/#preview

雖然出現在搜索過程中每一個KEYUP,這可能使您的應用程序速度較慢。

$('#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 
     }); 
    } 
}); 
+0

讓我試試並回復你。 – LittleLebowski 2013-03-02 15:19:27

+1

這就像一個魅力。非常感謝你的快速解決方案。爲我節省了很多頭痛。 :) – LittleLebowski 2013-03-02 15:22:55

+1

沒問題!我只是在我的答案中添加了一個註釋 - 我會建議在某些條件檢查中嘗試將fnDrawCallback中的raty init包裝起來,以查看它是否已經在'.star'的特定實例上初始化......例如,如果raty添加了一個類,也許你可以做'.star [class!= some_raty_class]',以防止它重新初始化它已經有的一行(在過濾結果的情況下)(或者插件甚至可能就這樣做吧!) – Benno 2013-03-02 15:25:03

相關問題