我正在检测没有某个类的div上的点击(class =“off”),并且在函数结束时,设置了一个cookie,触发一些php代码,在刷新页面后将该类添加为“off”,因此,在单击并刷新页面后,该功能的操作不再适用于该特定div。到目前为止一切都很好......
我遇到的问题是我希望函数停止处理已被点击的任何div,而不必刷新页面。我尝试在函数末尾使用.addClass添加类,但即使现在单击div时它确实有效并添加“off”类,但如果再次单击,该函数仍然可以在div上工作,而我感觉它没有检测到原始html代码的更改。
如何在一次点击后停止工作?
$('#example').not('.off').click(function() {
// do stuff
$('#example').addClass('off');
}
谢谢你们。
答案 0 :(得分:0)
改为使用$(this)
。
$('#example').not('.off').click(function() {
$(this).addClass('off');
});
或者,如果您想在使用one
$('#example').one('click', function() {
// this code will be executed once per element
});
答案 1 :(得分:0)
只需删除类,就无法删除曾经绑定在元素上的处理程序。您还需要取消绑定处理程序
$('#example').not('.off').on('click', function() {
// do stuff
$('#example').addClass('off');
//remove the event handler
$('#example').off('click');
}
另一个解决方案是你可以通过
检查div是否已经有了这个类if($('#example').hasClass("off"))
{
return;
}
这是另一种解决方案。我称之为quickfix。
答案 2 :(得分:0)
如何不使用其他类并使用.off
$('#example').click(function() {
$(this).off('click');
});