禁用然后重新启用click function jQuery

我有一个文件上传系统,点击上传按钮后,文件将通过AJAX上传。 上传文件时,我想禁用“选择图像”按钮上的单击function。 目前这是文件选择按钮上的单击function:

$(document).ready(function() { $("#file-button").click(function() { $('#file').trigger('click'); }); }); 

这工作正常,但我想在XmlHttpRequest的进度阶段禁用click函数,然后当我从服务器得到200响应时重新启用click函数。 我已经尝试过bind()unbind() ,它在Chrome中工作正常,但在firefox中,在上传过程中,无法点击按钮,这就是我想要的,然后在我从服务器得到响应之后按钮是重新启用,但在firefox中两个文件选择对话窗口同时打开。 这是因为上面的函数,我使用bind()再次bind()函数。 有没有人对如何启用有任何建议,然后禁用该按钮而不重新输入click事件的代码(function)。

这样的事情会更好:

 $('#file-button').disable(); $('#file-button').enable(); 

我已经尝试过on()off() ,但它们似乎也没有用。

解决方案 – 感谢Eric

我将初始点击function更改为以下内容:

 $(document).ready(function() { $("#file-button").click(function() { if ( $('#file-button').attr('disabled') == "disabled" ) { return false; } else { $('#file').trigger('click'); } }); }); 

我设置以下内容以禁用该按钮

 $('#file-button').attr('disabled','disabled'); 

这要重新启用它:

 $('#file-button').removeAttr('disabled'); 

使用jQuery $ .prop()函数禁用该按钮:

 $("input[type=submit]").prop('disabled', true); 

向click处理程序添加条件以检查按钮是否已禁用:

 $("#file-button").click(function() { if (!$(this).is(':disabled')) { $('#file').trigger('click'); } }); 

稍后重新启用按钮:

 $("input[type=submit]").prop('disabled', false); 

或者,如果涉及表单,您可以使用提交事件而不是单击:

 $("#whatever-your-form-is").on('submit', function() { $('#file').trigger('click'); }); 

尝试Attr jQuery函数。

 $('#file-button').attr('disabled','disabled'); $('#file-button').removeAttr('disabled'); 

经过测试的代码

    

您必须参考输入按钮才能禁用按钮,

像下面的东西

  $("input[type=submit]").prob('disabled', true); $("inpur[type=submit]").prob('disabled', false);