Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:防止多次单击?_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:防止多次单击?

Javascript jQuery:防止多次单击?,javascript,jquery,Javascript,Jquery,我试图防止多次点击链接,我需要等到功能完成后再允许再次点击同一链接 但是,无论我做什么,都允许多次单击 这是我的代码: var active = false; $('#rotRight').live('click', function(){ if (active) { return; } $(this).attr('id', 'rotRight1'); var curAngle = parseInt($(".selected").get

我试图防止多次点击链接,我需要等到功能完成后再允许再次点击同一链接

但是,无论我做什么,都允许多次单击

这是我的代码:

var active = false;

$('#rotRight').live('click', function(){
        if (active) {
        return;
    }

    $(this).attr('id', 'rotRight1');
    var curAngle = parseInt($(".selected").getRotateAngle()) || 0;


    if($(".selected").rotate({
        angle: curAngle,
        animateTo: curAngle - 90

    })){
        active = true;
    }
    $(this).attr('id', 'rotRight');
    active = false;
});
我知道我在正确的道路上。我只是需要有人让我知道我错过了什么,或者如果我做错了什么,请告诉我

任何帮助都将不胜感激

谢谢

旋转插件有一个可以重置活动标志值的

var active = false;

$('#rotRight').live('click', function() {
  if (active) {
    return;
  }

  var curAngle = parseInt($(".selected").getRotateAngle()) || 0;

  active = true;
  $(".selected").rotate({
    angle: curAngle,
    animateTo: curAngle - 90,
    callback: function() {
      active = false;
    }
  })
});
旋转插件有一个可以重置活动标志值的窗口

var active = false;

$('#rotRight').live('click', function() {
  if (active) {
    return;
  }

  var curAngle = parseInt($(".selected").getRotateAngle()) || 0;

  active = true;
  $(".selected").rotate({
    angle: curAngle,
    animateTo: curAngle - 90,
    callback: function() {
      active = false;
    }
  })
});

在返回之前,首先尝试阻止默认行为

var active = false;

$('#rotRight').live('click', function(e){
    if (active) {
        e.preventDefault(); // prevent default behaviour before returning
        return;
    }

    ... 

});

在返回之前,首先尝试阻止默认行为

var active = false;

$('#rotRight').live('click', function(e){
    if (active) {
        e.preventDefault(); // prevent default behaviour before returning
        return;
    }

    ... 

});

您可以始终创建一个覆盖(加载屏幕),停止用户执行任何操作,直到使用以下css通过全屏div完成该过程:

#overlay {
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 999;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: none;
}​
这将执行以下操作:


使所有内容在加载屏幕完成之前不可单击。

您始终可以创建一个覆盖(加载屏幕),停止用户执行任何操作,直到通过带有以下css的全屏div完成该过程:

#overlay {
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 999;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: none;
}​
这将执行以下操作:

使所有内容在加载屏幕完成之前不可单击。

您可以尝试在链接上使用。这样,您就可以在链接本身上设置“active”属性,并据此进行操作。Jquery使用$().data(string)方法处理该系统。我认为它比使用全局“活动”var更干净

您可以尝试在链接上使用。这样,您就可以在链接本身上设置“active”属性,并据此进行操作。Jquery使用$().data(string)方法处理该系统。我认为它比使用全局“活动”var更干净


尝试从语句
var active=false中删除
var
尝试从语句
var active=false中删除
var