javascript - 表格中的最后一列不可点击

标签 javascript jquery html css

我目前有一个非常疯狂的代码,可以在动态表格中单击和展开行。我的问题是我需要使表中的最后一列不可点击,但我不知道该怎么做。我搜索了互联网并尝试了不同的方法,但似乎没有任何帮助。

这是我的 table :

<table id="myTable">
                    <tr>
                        <th>Name</th>
                        <th>Type</th>
                        <th>Details</th>
                    </tr>
           {{#each companies}}

                   <tr class="record">
                       <td>
                          {{this.name}}
                       </td>
                       <td>
                          {{this.type}}
                      </td>
                      <td id="details">
                          <img style="height: 20px; width: 20px" src="img/arrow_right.png">
                     </td>
                 </tr>
         {{/each}}
  </table>

我想让最后一列 (ID = "details") 不可点击。

这是我的疯狂点击事件:

$("#myTable").on("click", "tr.record", function () {
            var rowIndex = this.rowIndex,
                    services = null;
            var self = this;
            $.ajax({
                url: "api/relation",
                type: 'GET',
                success: function (response) {
                    if (response[rowIndex - 1].relationStats) {
                        services = response[rowIndex - 1].relationStats.PROVIDES_SERVICE;
                    }

                    if (services > 0 && $(self).hasClass('record active')) {
                        console.log("CLOSING");
                        $(self.nextSibling).remove();
                        $(self).removeClass('active');

                    } else if (services > 0) {
                        console.log("OPENING");
                        var openDetails = $('<tr/>').addClass('openDetails').insertAfter(self);
                        $(self).addClass('active');
                        var td = $('<td/>').addClass('td').appendTo(openDetails);
                        $('<p/>').html("Provides service(s):&nbsp").appendTo(td);
                        $('<td/>').html(services).appendTo(openDetails);

                    }
                }
            });
        });

如有任何帮助,我们将不胜感激!

最佳答案

不是将点击处理程序注册到 tr,而是使用 td 并过滤掉 last-child

$("#myTable").on("click", "td:not(:last-child)", function () {
    var self = $(this).closest('tr').get(0), rowIndex = self.rowIndex,
        services = null;
    $.ajax({
        url: "api/relation",
        type: 'GET',
        success: function (response) {
            if (response[rowIndex - 1].relationStats) {
                services = response[rowIndex - 1].relationStats.PROVIDES_SERVICE;
            }

            if (services > 0 && $(self).hasClass('record active')) {
                console.log("CLOSING");
                $(self.nextSibling).remove();
                $(self).removeClass('active');

            } else if (services > 0) {
                console.log("OPENING");
                var openDetails = $('<tr/>').addClass('openDetails').insertAfter(self);
                $(self).addClass('active');
                var td = $('<td/>').addClass('td').appendTo(openDetails);
                $('<p/>').html("Provides service(s):&nbsp").appendTo(td);
                $('<td/>').html(services).appendTo(openDetails);

            }
        }
    });
});

关于javascript - 表格中的最后一列不可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396736/

相关文章:

javascript - 如何使 d3js 图形上的文本与图形一起缩放?

javascript - 纯Js或jquery获取64个类的相同CSS属性值

javascript - 来自 JavaScript (HTML5) 的 PostgreSQL 套接字

javascript - 无法使用 API 在 Google 云端硬盘中打开上传的文件

javascript - jquery 更改下拉列表中的占位符输入

javascript - 单击元素后 Jquery 选择器不起作用

jquery - 当通过 JQuery 应用 'input-validation-error' 类时,mvc3 .net selectList 高度发生变化

html - 隐藏带有 HTML 中输入标签消息 "This is a required field"的工具提示

Javascript getElementsByTagName() 奇怪的行为

html - 如何在 li 元素中居中图片+文字