我如何知道 jQuery dataTable 的哪一行被单击了?

发布于 2024-12-16 17:23:52 字数 131 浏览 1 评论 0原文

我想使用 jQuery dataTables 插件在表列中包含删除链接。我确信这很容易。我添加列没有问题,并且我知道实际删除表的语法,我只是不知道单击的行。

这些行是通过 UI 动态添加的,因此除了开头的标题之外,我不会渲染任何行。

I want to include a delete link in a table column, using the jQuery dataTables plugin. I am certain this is easy. I have no problem adding columns, and I know the syntax for actually removing the table, I just don't know the row that is clicked on.

The rows are added dynamically through the UI, so I'm not rendering any rows other than the header in the beginning.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

兮子 2024-12-23 17:23:52

另一个例子...

$("#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

    }

});

another example...

$("#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

    }

});

末骤雨初歇 2024-12-23 17:23:52

我最近这样做是为了隐藏/显示每行的额外信息。这是我的代码片段:

        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 中添加对 null 的检查,因为如果单击附加信息,它会向展开行中的每个项目添加一个简短的空扩展名。

稍后将处理程序添加到表中:

 $("#TableId tbody tr").live( 'click', fnTableRowClickHandler )

I did this recently to hide/show extra info for each row. Here's a snippet of my code:

        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' );
            }

        }

I had to add that check against null in the else because it would add a short empty extension to each item in the expanded row if the additional info was clicked.

Later add the handler to the table:

 $("#TableId tbody tr").live( 'click', fnTableRowClickHandler )
不念旧人 2024-12-23 17:23:52

在创建时动态为每行分配一个唯一的 id,并使每行的单击事件删除具有该 id 的元素

Dynamically assign each row a unique id on creation and make the click event for each row remove the element with that id

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文