【问题标题】:How can I tell what row of a jQuery dataTable was clicked?如何判断单击了 jQuery dataTable 的哪一行?
【发布时间】:2011-11-17 03:45:47
【问题描述】:

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

这些行是通过 UI 动态添加的,所以我不会在开始时呈现除标题之外的任何行。

【问题讨论】:

    标签: jquery jquery-plugins datatables


    【解决方案1】:

    另一个例子...

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

    });

    【讨论】:

      【解决方案2】:

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

              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 )
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2017-11-20
          • 1970-01-01
          • 2013-10-09
          • 2011-05-30
          • 2010-10-18
          • 1970-01-01
          • 1970-01-01
          • 2012-11-12
          • 2013-03-23
          相关资源
          最近更新 更多