我使用的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
});
};
答案 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');