在页面内部有两个按钮,一个用于从服务器检索文档(pdf),另一个用于提交当前表单的“下一个”按钮。
我要取消绑定“下一步”按钮,直到用户完成下载文件。
我有以下功能:
$.fn.unbindItem = function(){
return this.each(function(){
$(this).css('opacity', 0.5).css('cursor', 'not-allowed').unbind('click');
});
};
$.fn.reBindItem = function(){
return this.each(function(){
$(this).css('opacity', 1).css('cursor', 'pointer').bind('click');
});
};
然后,当文档准备就绪时:
$(document).ready(function(){
...
nextButton.unbindItem();
//TEST 1
docButton.click(function(e){
$.when(e).done(function(){ nextButton.reBindItem(); });
});
//TEST 2
$.when(docButton.click()).done(function(){ nextButton.reBindItem(); });
//TEST 3
docButton.click().queue(function(){
nextButton.reBindItem();
$(this).dequeue();
});
//TEST 4
docButton.click().done(function(){ nextButton.reBindItem(); });
});
显然,我没有同时测试所有案例,而是一个接一个地测试。
每个TEST的结果是:
答案 0 :(得分:1)
$.fn.unbindItem = function(){
return this.each(function(){
$(this).attr("disabled","disabled");
});
};
$.fn.reBindItem = function(){
return this.each(function(){
$(this).removeAttr("disabled");
});
};