如果条件为真,我想在所有链接上使用unbind(),然后在1.5秒后再次绑定链接。我已经尝试过了,但是没有用:
if ( /*some condition*/) {
$('a').unbind();
setTimeout(function(){
$('a').bind();
}, 1500);
}
最佳答案
您无法执行此操作,因为.unbind()
删除了事件处理程序句点。有关它们的所有信息都将丢失。除非您已经在某个地方保存了一个单独的副本,否则您永远无法将它们取回。
您可以做的是编写处理程序,使其根据外部条件修改其行为。然后,您可以切换此条件,使其看起来好像根本没有绑定处理程序。
示例(仅用于说明;请不要使用全局变量!):
$('a').click(function() {
if (window.doNothing) {
return;
}
// do something
});
if ( /*some condition*/) {
window.doNothing = true;
setTimeout(function(){
window.doNothing = false;
}, 1500);
}
关于javascript - 有没有办法使用unbind()然后bind()与计时器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11510774/