我有一个表格单元格,我希望能够被点击。但是一旦单击它,它将具有“.clicked”类。当任何表格单元格具有此类时,我不想被点击。有没有办法做到这一点?
问问题
47 次
4 回答
2
您也可以使用.off()方法取消绑定任何事件。
$('td').on('click', function(){
$(this).addClass('clicked').off('click');
})
于 2013-06-25T08:09:28.817 回答
1
这很容易通过在事件处理程序的顶部插入一些代码来完成。
$('td').click(function(e) {
if ($(this).hasClass('clicked')) {
e.stopPropagation();
e.preventDefault();
return;
}
// the rest of your code here
});
另一种更复杂的方法是使用事件委托,并且仅在元素被单击时没有类时才触发该函数:
$('table').on('click', 'td:not(.clicked)', function() {
// your code here
});
于 2013-06-25T08:09:24.640 回答
0
只需添加:not(.clicked)
到您用来排除单击的单元格的任何选择器。
于 2013-06-25T08:10:32.277 回答
0
您可以使用.one()事件注册方法来执行此操作,一旦触发事件,它将取消注册处理程序。
$('td').one('click', function(){
console.log('hanlded', this)
})
另一种解决方案可能是
$('table').on('click', ':not(.clicked)', function(){
console.log('hanlded', this)
})
于 2013-06-25T08:08:05.450 回答