Javascript 滚动到DataTableAPI中的特定行
我需要滚动到数据表中的特定行,如下所示: 这是我的代码:Javascript 滚动到DataTableAPI中的特定行,javascript,jquery,datatables,Javascript,Jquery,Datatables,我需要滚动到数据表中的特定行,如下所示: 这是我的代码: <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> <scrip
<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("second");
我做错了什么
谢谢。我想问题可能是你使用了“this”。在本例中,我认为它实际上引用了回调函数,而不是DataTable。我不确定您是否可以以某种方式将其作为参数传递给回调函数,但如果您在回调函数的作用域之外创建对DataTable的引用,您可以通过该变量访问它。我认为与其使用“scrollY”:“120px”,不如使用“scrollY”:“120”。尝试不使用px。请用下面的initComplete函数替换。它会起作用的
"initComplete": function () {
$('#example').DataTable().row(2).scrollTo();
}
注意:2表示n-1个目标行,这是不正确的,可以使用
此
,请参见。可以使用此
,请参见,无需使用$(“#示例”).DataTable()
。但此.api()不起作用。请看下面的示例代码。如果我使用this.api()
,我会得到相同的结果,这是首选方法,因为您不必使用表ID。好的,我将尝试使用px
,请参见。如果您使用两个jQuery库,请删除一个不需要的库。
"initComplete": function () {
$('#example').DataTable().row(2).scrollTo();
}