如何在启动任务后直接取消绑定绑定按钮?

时间:2015-06-14 21:20:29

标签: javascript

您好我有一个简短的问题,如果我用光标将其鼠标放入,我已经绑定了一个按钮来执行“dothis()”。我目前的问题是,如果我在“dothis()”运行时鼠标按下按钮,它会再次运行“dothis()”。当dothis()时,我怎么能解除它的功能呢?开始?我的想法是在“dothis()”中取消它自己。但它会起作用还是有其他更好的解决方案? 所以我的目标是按钮应该运行dothis();并行得到unbinded,所以它不能运行dothis();再次,只有我调用mainFunction();试。

function mainFunction(){
    bind(button, 'mouseenter',  function() { 



                    dothis();

                }
                });
}

function dothis(){

...

}

谢谢你

1 个答案:

答案 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;
}