我需要滚动到我的数据表中的特定行,如下所示:
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");
但第二个,不是:
alert("second");
我做错了什么?
感谢。
答案 0 :(得分:0)
我认为问题可能在于您使用'this'。在这种情况下,我认为它实际上引用了回调函数,而不是DataTable。我不确定你是否可以以某种方式将它作为参数传递给回调函数,但是如果你在回调函数范围之外创建对DataTable的引用,你可以通过该变量访问它。
答案 1 :(得分:0)
我认为不是“scrollY”:“120px”,它应该是“scrollY”:“120”。试试没有px。
答案 2 :(得分:0)
请使用以下initComplete函数替换。它会工作。
"initComplete": function () {
$('#example').DataTable().row(2).scrollTo();
}
注意:2代表n-1目标行