如何防止jquery函数运行?

如何防止jquery函数运行?,jquery,event-handling,click,Jquery,Event Handling,Click,我在一个类上绑定一个函数。我有一张带“空白表”的桌子。我在每个tr上绑定了一个click函数: jQuery(function(){ ieClick('.blanks-table tr','click'); }); function ieClick(h_list, h_class){ if(!h_class) var h_class = 'click'; jQuery(h_list).click(function(){ jQuery(this).togg

我在一个类上绑定一个函数。我有一张带“空白表”的桌子。我在每个tr上绑定了一个click函数:

jQuery(function(){
    ieClick('.blanks-table tr','click');
});

function ieClick(h_list, h_class){
    if(!h_class) var h_class = 'click';
    jQuery(h_list).click(function(){
        jQuery(this).toggleClass(h_class)
    });
}
这是我的桌子:

<table class="blanks-table">
   <tr class="sum master">
      <td class="check-holder"><div class="blankcheck"><span class="toggle-show sh"></span></div></td>
      <td>Hello World</td>
   </tr>
</table>

你好,世界
如果我在行中单击,颜色将改变。它工作得很好。但我不喜欢改变颜色,如果我点击跨度与类“sh”。在这种情况下,我不喜欢切换行的类

在该事件上是否有任何排除选项


谢谢

您的当前事件已绑定到
tr
——但您不能直接单击
tr
,只能单击其内容,即
td
s和
div

因此jquery从单击的位置“冒泡”事件,直到获得事件处理程序

$(".sh").click(function() {
    // either of these, as long as return false is last line
    event.stopPropagation();
    return false;
});
在您的情况下,这将是
tr

要阻止特定元素发生这种情况,请添加第二个事件处理程序,然后从子事件处理程序调用
stopPropagation()
(或
return false

$(".sh").click(function() {
    // either of these, as long as return false is last line
    event.stopPropagation();
    return false;
});
$(“tr”)。单击(()=>{console.log(“单击行”);});
$(“.sh”)。单击(()=>{return false;})

无点击区域
单击此处查看第行