有没有办法禁用单击元素?

时间:2013-12-26 10:09:53

标签: javascript jquery

我使用的div元素充当按钮。当我单击它时,必须禁用它直到动画完成。目前,我在点击时解除绑定并再次绑定动画完成,我认为这不是一个好方法。任何人都可以建议是否有任何方法来禁用该元素?

function moveLeft() {
    //I unbind the element (div) after clicking on it
    $('#w_oCNABarSlideBack').unbind('click');

    //Write your suggestions above to disable the element
    if(_nBadgeLeft>=0) return;
    else _nBadgeLeft = _nBadgeLeft + _nBadgeWidth;
    $('#w_oCNABarSlider ul').animate({
        left : _nBadgeLeft
    }, 200, function() {
        //again bind the event again on animation complete
        $('#w_oCNABarSlideBack').bind('click', function() { moveLeft(); });

        //Write your suggestions above to enable the element
    });
};

5 个答案:

答案 0 :(得分:1)

禁用元素的方法可以按如下方式进行:

如果您使用的是1.4.3以上的jQuery版本:

$('selector').click(false);

如果不是:

$('selector').click(function(){return false;});

尝试在代码中使用上述内容。

答案 1 :(得分:1)

我相信bind()unbind()是很好的方法并且可行。但是,您也可以通过编辑.click()处理程序来禁用该元素,如此

$('#w_oCNABarSlideBack').click(function(){return false;});

您还可以使用类似的功能.on().off(),这些功能可能更新

答案 2 :(得分:0)

我宁愿建议设置一个变量。说isrunning

动画开始时

isrunning=true,你应该在动画完成时将其设置为假。

在div的click函数中,检查变量值。如果是真的那么返回。否则执行其余代码。

答案 3 :(得分:0)

Animate功能足以完成此任务,以便在点击时禁用和启用按钮。请参阅下面的示例代码:

$("#divid").click(function(){  // This is the id of div

 $( "#w_oCNABarSlider ul" ).animate({
    left : _nBadgeLeft
  },200, {
     progress: function() {
     $("#w_oCNABarSlideBack").attr("disabled","disabled");
    },
    complete: function() {
      $("#w_oCNABarSlideBack").removeAttr("disabled");
    }
  });

});

答案 4 :(得分:-1)

你可以这样做 -

$('#w_oCNABarSlideBack').attr('disabled','disabled');