将Click事件放在表格行上,但将列

时间:2015-11-20 17:22:26

标签: javascript jquery html django

我有一个可以点击行的表格。当你点击它们时,包含隐藏div的那些行会被展开,从而暴露出一个相关数据的嵌套表。这按照我的预期方式运作 问题是表的最后一列有一个编辑按钮。按下编辑按钮时,行会在重定向到编辑页面之前展开。这看起来很草率。有没有办法只从该列中删除该事件?

这是我的代码。这是一个Django模板BTW。

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

1 个答案:

答案 0 :(得分:3)

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

&#13;
&#13;
g <- ggplot(df, aes(x = Day, y = Total.Sales, color = as.factor(Year))) +
        geom_line()
&#13;
$(document).ready(
	function(){
        $("tr").click(function(event){
            console.log($(event.target).hasClass("except"));
        });
    }
);
&#13;
&#13;
&#13;