我有一个div女巫和一个jquery列表器:
$("#right_arrow").click(function(){
//my action
});
Run Code Online (Sandbox Code Playgroud)
我的行动也在计算步骤,如果用户进入最后一步,它就不会让它走得更远.当用户点击div时,一切都很好.但是当用户非常快地点击两次时(在prevoios到最后一步),他就通过了最后一步.
我尝试过这样的事情:
if($(this).data('off')==1) return;
$(this).data('off', 1);
//my action
$(this).data('off',0);
Run Code Online (Sandbox Code Playgroud)
但仍然有同样的问题.似乎我在函数内部写的东西都很重要 - 比如在第一次执行函数之前,两次单击就会排队.
怎么可以避免?
谢谢!
尝试在每次单击时分离和重新附加事件处理程序可能成本更高,您可以使用布尔标志来指示是否可以安全地单击.
var isClicked = false;
$("#right_arrow").click(function(){
if (!isClicked) {
isClicked = true;
//my action
// reenable in 200ms
setTimeout(function () {
isClicked = false;
}, 200);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |