您好我有一个简短的问题,如果我用光标将其鼠标放入,我已经绑定了一个按钮来执行“dothis()”。我目前的问题是,如果我在“dothis()”运行时鼠标按下按钮,它会再次运行“dothis()”。当dothis()时,我怎么能解除它的功能呢?开始?我的想法是在“dothis()”中取消它自己。但它会起作用还是有其他更好的解决方案? 所以我的目标是按钮应该运行dothis();并行得到unbinded,所以它不能运行dothis();再次,只有我调用mainFunction();试。
function mainFunction(){
bind(button, 'mouseenter', function() {
dothis();
}
});
}
function dothis(){
...
}
谢谢你
答案 0 :(得分:0)
而不是解绑和重新绑定,创建一个标志,如果标志为true则不运行doThis。如果它的错误,则将标志设置为true并运行doThis。当doThis完成后,将标志设置为false。
var doThisRunning = false;
function mainFunction(){
bind(button, 'mouseenter', function() {
if(doThisRunning){
return;
}
doThisRunning = true;
dothis();
});
}
functio doThis(){
/* ... */
//at the end set it back to false
doThisRunning = false;
}