javascript - 将 Click 事件放在表格行上但排除其中一列

标签 javascript jquery html django

我有一个表格,其中的行是可点击的。当您单击它们时,它们下方包含隐藏 div 的行会展开,从而显示相关数据的嵌套表格。这符合我的预期。
问题是表格的最后一列有一个编辑按钮。当按下编辑按钮时,该行会在重定向到编辑页面之前展开。这看起来很马虎。有没有办法只从该列中删除事件?

这是我的代码。这是一个 Django 模板顺便说一句。

HTML

<table id="exp" class="feedtable table table-hover table-bordered ">
    <thead>
        <tr>
            <th>Scales</th><th>Type</th><th>Edit</th>
        </tr>
    </thead>
    <tbody>
        {% for scale in scales %}
        <tr>
            <td><p class="scalet">{{scale}}<p></td><td>{{scale.calc_type}}</td><td><a href="{% url 'questions:edit_feedback' scale.pk %}" class="btn btn-default">Edit</td>
        </tr>
        <tr>
            <td colspan="3">
                <div id="{{scale.pk}}div">
                    <table id="{{scale.pk}}table" class="feedtable table-hover table-bordered">
                        {% for question in questions %}
                        {% if question.scale == scale%}
                            <tr>
                                <td>{{question | safe}}</td><td><a class='btn btn-default' href="{% url 'questions:edit_question' question.pk %}">Edit</td>
                            </tr>
                        {% endif %}
                        {% endfor %}
                    </table>
                </div>
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>

JQuery

$(function() {
    $("td[colspan=3]").find("div").hide();
    $("tr").click(function(event) {
        console.log("hit")
        var $target = $(event.target);
        $target.closest("tr").next().find("div").slideToggle();                
    });
});

最佳答案

你可以使用 event.target 对象和类, 例如。) 如果列具有“特定类(或属性)”,则可以删除该事件

$(document).ready(
	function(){
        $("tr").click(function(event){
            console.log($(event.target).hasClass("except"));
        });
    }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
      <td class="except">except</td>
      <td>data</td>
  </tr>
</table>

关于javascript - 将 Click 事件放在表格行上但排除其中一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33832549/

相关文章:

javascript - 按左或右按钮无法更改颜色

javascript - 从更改数组中获取静态值

jquery .animate() 在滚动时一遍又一遍地重复

html - 为什么 CSS 类不能在浏览器中工作?

JavaScript/HTML - 新的音频 JavaScript 在 IE 8 及以下版本中失败?

html - 为什么 display=inline-block 会增加无法控制的垂直边距

javascript - 按列和关联记录的列序列化查询表

javascript - 如何删除多行字符串中每一行的前 40 个字符?

jquery - 如何在jquery中以百分比设置宽度

javascript - 使用 jQuery 验证器禁用自动输入焦点