jQuery使用$(document).click事件作为'取消选择'事件

时间:2015-07-25 17:03:58

标签: jquery asp.net events

我正在使用jQuery构建一个app.net页面进行DOM操作(JS Fiddle here)。当我点击表格上的某个<td>时,它就成了将来操作的目标。我想添加代码,以便在表格外的任何地方点击都会取消定位<td>(意味着后台的点击应该作为取消选择事件)。

this question的答案对我没有帮助,因为: 答:我不想使用stopPropagation(),因为this article加上我的代码中有许多点击事件处理程序,我将不得不停止传播)。 B.我在页面上有其他元素(按钮,文本输入字段),不应该作为取消选择事件。

1 个答案:

答案 0 :(得分:1)

如果没有更多细节,似乎在目标细胞上切换一个活跃的类会做你想要的。

var $table = $('#myTable').on('click', 'td', function(){
    $table.find('.active').removeClass('active');
     $(this).addClass('active');
});

然后,要删除使用表外的事件,只需检查目标是否在表

$(document).click(function(e){
  if(!$(e.target).closest('#myTable').length){
      $table.find('active').removeClass('active');
  }
});