2017-03-11 4 views
0

スクロール

https://datatables.net/extensions/scroller/examples/initialisation/api_scrolling.html

これは私のコードです:

 <script src="js/jquery-1.12.4.js"></script> 
     <script src="js/jquery-3.1.1.min.js"></script> 
     <script src="js/jquery.dataTables.min.js"></script> 
     <script type="text/javascript" src="https://cdn.datatables.net/scroller/1.4.2/js/dataTables.scroller.min.js"></script> 
     <script src="js/bootstrap.min.js"></script> 
     <script src="js/form-builder.min.js"></script> 
     <script src="js/jquery-ui.min.js"></script> 
     .... 
     <script> 
      $(document).ready(function() { 
       tableEntityList = $('#accentityListTable').DataTable({  
        "ordering": false, 
        "scrollY":"120px", 
        "scrollCollapse": true, 
        "paging":false, 
        "dom":'<<"top"i>ft>', 
        "deferRender":true, 
        "scroller":true,  
        "columnDefs": [ 
         {"targets": [ 0 ],"visible": false} 
        ], 
        "createdRow": function(row, data, dataIndex) { 
         if (data[ 3 ] == "Inp") 
          $(row).css('color', 'green') 
         else 
          $(row).css('color', 'red') 

         if (data[7] > 0) $(row).css('font-weight', 'bold')       
        }, 
        "initComplete": function() { 
         alert("first"); 
         this.api().row(2).scrollTo(); 
         alert("second"); 
        }   

       }); 
    }) 
</script> 

最初の警告が表示されます。

alert("first"); 

しかし、2つ目のdoesnt:

alert("second"); 

私は間違っていますか?

ありがとうございました。

+0

のn-1標的化さ行を表します。 –

答えて

0

私は問題があなたの「this」を使用している可能性が高いと思います。この場合、実際にはDataTableではなくコールバック関数を参照していると思います。コールバック関数のパラメータとして何らかの方法で渡すことができるかどうかはわかりませんが、コールバック関数のスコープ外のDataTableへの参照を作成すると、その変数でアクセスできます。

+0

これは真実ではありません。[this example](https://datatables.net/extensions/scroller/examples/initialisation/api_scrolling.html)を参照してください。 –

0

私は「scrollY」の代わりに「120px」と思っています。「scrollY」:「120」でなければなりません。 Pxなしで試してみてください。

+0

'px'の使用はOKです。[scrollY](https://datatables.net/reference/option/scrollY)を参照してください。 –

0

以下のinitComplete関数を使い分けてください。それが動作します。

"initComplete": function() { 
    $('#example').DataTable().row(2).scrollTo(); 
} 

注:2あなたが必要としないものを削除し、次の2つのjQueryのライブラリを使用している

+0

'this'を使っても問題ありません。[この例](https://datatables.net/extensions/scroller/examples/initialisation/api_scrolling.html)を参照してください。' $( '#example')を使う必要はありません。 DataTable() ' –

+0

しかしthis.api()は機能しません。以下のサンプルコードを参考にしてください。http://codepen.io/abbasak/pen/pePJGX – abbasak

+0

'this.api()'を使用しても同じ結果が得られますが、必ずしもテーブルを使用する必要はないID。 –

関連する問題