Javascript 当一行内的复选框复选事件被激发时,单击事件也激发

Javascript 当一行内的复选框复选事件被激发时,单击事件也激发,javascript,jquery,Javascript,Jquery,我在表的各个行中都有复选框 我希望当行中的其他位置发生单击时,触发某些事件。但是当选中复选框时,我不想触发任何事件 这是我的标记 <tbody data-bind="foreach:CustomerList"> <tr onclick="removepage();" onmouseover="changeRowColor(this)" onmouseout="restoreRowColor(this)">

我在表的各个行中都有复选框

我希望当行中的其他位置发生单击时,触发某些事件。但是当选中复选框时,我不想触发任何事件

这是我的标记

        <tbody data-bind="foreach:CustomerList">
            <tr onclick="removepage();" onmouseover="changeRowColor(this)" onmouseout="restoreRowColor(this)">

                <td>
                    <input class="checkbox" data-bind="attr: { Id: 'checkbox' + $data.Id },click:$parent.customerClick" type="checkbox">

                </td>
                <td class="col-md-4">
                    <span class="name" data-bind="text:customerName" />

                </td>
                <td>
                    <span data-bind="text:siteName" />
                </td>

            </tr>
        </tbody>
但它没有起作用


我做错了什么?

您的customerClick功能应该是:

customerClick: function (event) {
        event.stopPropagation(); 
    }

您正在使用e,而没有将其添加为函数的参数 所以只需在函数()中添加e


在java脚本中,您可以停止冒泡事件listner,因为您有一些Listenr到您的事件,您可以停止冒泡到其他事件

事件。停止播放()


您正在寻找的方法是

您应该像这样绑定事件:

$(“#测试>车身>tr”)
.on(“单击”,“td:not(.notfiring)”,函数(){
警报(“点击tr”);
});

第1列
第2列

在您的代码中,
e
未定义?!将不带引号的“e”作为参数传递给customerClick函数,然后再次检查。
customerClick: function (event) {
        event.stopPropagation(); 
    }
customerClick: function(e) {
    e.stopPropagation(); 
},