2017-03-29 35 views
0

我有一个由点击触发的功能。我想要点击它后,禁用点击。所以我做了这个如何禁用点击并在以后使用jQuery重新启用它

$('.item-blog').on('click', function(){ 

    $('.item-blog').off('click'); 

}); 

它的工作完美。

但后来,在所有事件结束时,在最后一个函数中,当我重新设置了所有的东西并且我已经运行了所有代码时,我希望能够重新单击第一个函数以便再次发起相同的事件。所以我把它放在最后一个重置所有东西的函数中。

$('.item-blog').on('click'); 

但它根本不工作。

我甚至尝试绑定和解除绑定,但每次我想重新启用点击,它从来没有工作。

有帮助吗?

非常感谢你

+1

的'.off()'方法在关灯开关的感不转处理机关,则* *去除在拉出的意义上,处理程序灯泡和所有相关的接线。 – nnnnnn

+0

http://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata – dippas

+0

这是另一个与使用标志而不是添加和删除处理程序的答案重复:http:/ /stackoverflow.com/questions/38906793/event-click-on-and-off – nnnnnn

回答

0

尝试删除类而不是...并添加一个临时的。
;)

$(document).on('click','.item-blog', function(){ 
    $(this).removeClass("item-blog").addClass("item-blog-disabled"); 
}); 

然后,以后,你将只能使用item-blog-disabled类重新添加类。
喜欢:

$(document).find('.item-blog-disabled').removeClass("item-blog-disabled").addClass("item-blog"); 

所以,现在,处理程序绑定到document其代表为.item-blog它。

给你机会使用一个简单的类去除/添加这些元素的处理程序。

+0

我知道......我刚编辑过。 –

+0

你是对的......现在好点? ;) –

0

您可以尝试下面的onoff切换点击。

$(document).ready(function(){ 
 

 
function toggleClick(on) { 
 

 
    if(on) { 
 
     $('.item-blog').on('click', function(){ 
 
     console.log('clicked'); 
 
     toggleClick(false); 
 

 
     }); 
 

 
    } else { 
 
     $('.item-blog').off('click'); 
 
    } 
 

 
} 
 

 
toggleClick(true); 
 

 
$('.item-blog-reset').on('click', function(){ 
 
    console.log('Reset done'); 
 
    toggleClick(true); 
 

 
}); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" value="Click" class="item-blog" /> 
 
<input type="button" value="Reset" class="item-blog-reset" />

+0

'.bind'和'.unbind'从jQuery 3.0开始不推荐使用。所以这不是一个长期的解决方案。 –

+0

谢谢,用'on'和'off'更新。 – Aruna

相关问题