在函数运行期间关闭onclick

时间:2015-03-08 22:25:55

标签: javascript jquery function events onclick

我想关闭onclick直到onclick调用的函数完成。我怎样才能做到这一点?但我不想永远关闭onclick

    function move() {

   //do things...

$("#carr").off("click");
    }



    dado.onclick = move;

2 个答案:

答案 0 :(得分:0)

虽然可以添加和删除eventListeners,但为函数调用添加一个保护可能更好一点,例如

var isRunning = false;

function myFunction(e, cb) {
  // do stuff
  return cb();
}

function guard(functionToRun, e) {
  if (isRunning) {
    return;
  }
  isRunning = true;
  functionToRun(e, function() {
    isRunning = false;
  });
}

$someNode.on('click', guard.bind(this, myFunction));

答案 1 :(得分:0)

你走在正确的轨道上。使用JQuery的绑定和解除绑定函数:

function move() {
    $("#carr").unbind("click");

    //do stuff

    $("#carr").bind("click", function () {
        move();
    });
}

$(document).ready(function () {
        move();
});