[英]javascript jquery datatables undefined is not a function
我正在遵循jquery数据表教程,以添加单击后要显示的子表。
var table = $("#equipment_table").dataTable(
{
"paging": false,
"ordering": false,
"info": false
});
$('#equipment_table tbody').on('click', 'td .pickup_button', function(){
alert("clickee");
var tr = $(this).closest('tr');
var row = table.row(tr);
if(row.child.isShown()){
//open , close it
row.child.hide();
tr.removeClass('shown');
}else {
row.child( buildChild(tr.attr('id'))).show();
tr.addClass('shown');
}
});
这是php中的html按钮定义
echo '<td> <button class="delivery_button" id="'.$eid.'"> Delivery Status </button> </td>';
echo '<td> <button class="pickup_button" id="'.$eid.'"> Pickup Status </button> </td>';
echo '</tr>';
}
echo '</tbody>';
使点击监听器开始工作后,出现此错误
Uncaught TypeError: undefined is not a function
在var row = table.row(tr);
线
这只是一个案例问题。 您应该这样定义变量table
:
var table = $("#equipment_table").DataTable(
{
"paging": false,
"ordering": false,
"info": false
});
注意它如何使用.DataTable()
而不是.dataTable()
这是DataTables的API文档中所说的内容:
重要的是要注意
$( selector ).DataTable()
和$( selector ).dataTable()
之间的区别。 前者返回DataTables API实例,而后者返回jQuery对象。
由于返回的是jQuery对象而不是API实例,因此方法.row()
是未定义的,这就是引发错误的原因。
希望能有所帮助。
注意它是如何使用.DataTable()而不是.dataTable()的,您应该使用var tr = $(this).closest('tr'); var row = table.row( tr ); if ( row.child.isShown() ) { // This row is already open - close it row.child.hide(); tr.removeClass('shown'); } else { row.child(format(row.data())).show(); tr.addClass('shown'); }
var tr = $(this).closest('tr'); var row = table.row( tr ); if ( row.child.isShown() ) { // This row is already open - close it row.child.hide(); tr.removeClass('shown'); } else { row.child(format(row.data())).show(); tr.addClass('shown'); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.