我有一个我希望能够点击的表格单元格。但是一旦点击它就会有“.clicked”类。当任何表格单元格有这个类时,我不想被点击。有没有办法做到这一点?
答案 0 :(得分:2)
此外,您可以使用.off()方法取消绑定任何事件。
$('td').on('click', function(){
$(this).addClass('clicked').off('click');
})
答案 1 :(得分: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
});
答案 2 :(得分:0)
您可以使用.one()事件注册方法来执行此操作,一旦事件被触发,它将取消注册处理程序。
$('td').one('click', function(){
console.log('hanlded', this)
})
另一种解决方案可能是
$('table').on('click', ':not(.clicked)', function(){
console.log('hanlded', this)
})
答案 3 :(得分:0)
只需将:not(.clicked)
添加到您用于排除点击的单元格的任何选择器。