繁体   English   中英

如何防止数据表中特定列的行单击功能?

[英]How to prevent row click function on specific column in datatable?

我正在处理一个带有可点击行的 javascript 数据表。 每一行都有 onclick 功能,但在我的一列中,我有不同的链接可以打开 jquery 对话框,在这一列上我想禁用行单击方法,该怎么做? 这是我实现的行点击功能

$(rec' tbody').on( 'click', 'tr', function () {

});

您必须禁用该特定列的行单击

$('rec' tbody'').on('click', 'td', function () {

         if ($(this).index() == 4 ) { // provide index of your column in which you prevent row click here is column of 4 index
             return;
         }

            // you can do additional functionality by clicking on this column here                         
    });

您可以检查点击的内容是否是锚点

$(rec' tbody').on( 'click', 'tr', function (evt) {
    if ( $(evt.target).is("a") ) {
        return;
    }
    /* do whatever here */
});

或其他选项是停止从链接/单元传播事件。

使用类或其他东西来标识您不想被单击的行/列,并检查单击事件是否来自此元素并使用event.preventDefault()取消操作。

您可以尝试为每一列设置类,您希望可点击特定内容,不可点击其他内容。

<table>
  <tr>
    <td class="clickable">click this</td>
    <td class="clickable">and this</td>
    <td class="something-else">but not this</td>
  </tr>
</table>

然后让你的 jQuery 在类上做一些事情而不是<tr>

$(".clickable").click(function(){
  alert('hello');
});

接受的答案有效,但可能有人希望与行而不是单击的列进行交互。 对于这些情况,试试这个:

table.on("click", 'tbody tr td', function() {
    if ($(this).index() == 10) return false;
    var $row = $(this).parent()  // this is the row you wanted
    var theRow =   table.row($row);
    //var artcode = theRow.data()[4];
    // Further logic goes here
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM