如何判断jQuery dataTable的哪一行被点击?
问题描述:
我想使用jQuery dataTables插件在表列中包含一个删除链接。我确信这很容易。我没有添加列的问题,并且我知道实际删除表的语法,我只是不知道被点击的行。如何判断jQuery dataTable的哪一行被点击?
这些行是通过UI动态添加的,所以我没有渲染除头部之外的任何行。
答
另一个例子..
$("#TableID tbody").delegate("tr", "click", function() {
var iPos = oTable.fnGetPosition(this);//oTable is the table object itself
if(iPos!=null){
//couple of example on what can be done with the clicked row...
var aData = oTable.fnGetData(iPos);//get data of the clicked row
var iId = aData[1];//get column data of the row
oTable.fnDeleteRow(iPos);//delete row
}
});
答
我最近做了这个以隐藏/显示每行的额外信息。下面是我的代码片段:
function fnTableRowClickHandler()
{
var nTr = this;
var oT = $(this.parentNode.parentNode).dataTable()
if ($(this).hasClass('highlighted'))
{
/* This row is already open - close it */
oT.fnClose(this);
$(this).removeClass('highlighted')
}
else
{
/* Open this row, if it's classy enough */
if (oT.fnGetData(nTr) == null) return;
$(this).addClass('highlighted')
oT.fnOpen(nTr, fnFormatDetails(oT, nTr), 'listingDetails opened');
}
}
我不得不补充说,对证空在else,因为它会如果被点击的附加信息短空延伸扩展行添加到每个项目。
后来的处理程序添加到下表:
$("#TableId tbody tr").live('click', fnTableRowClickHandler)
答
动态分配各行上创建一个唯一的ID,并为每一行的单击事件删除元素与ID