我有一个应用程序需要几秒钟才能获得一些数据,然后将其放在屏幕上。我还有一个后退按钮,允许用户基本上返回到前一个屏幕。我希望在超时功能工作时禁用此按钮。我该怎么做呢?就像我现在一样,即使在收集信息时,按钮仍然有效。这就是我所拥有的。
JS
$("#areas").on("change", function(){
setTimeout(function(){
$("#back").on("click", function(event){
$(this).disabled = true;
}, 3000)
})
答案 0 :(得分:0)
你需要在setTimeout内部进行onclick,你也应该给setTimeout函数延迟。只需禁用按钮,直到超时工作!
尝试以下
class Foo(Process):
def __init__(self):
super(Foo, self).__init__()
self.daemon = True # is daemon
self.number = 1
self._target = self.loop # on start() it will run loop()
def loop(self):
while 1:
print self.number
self.number += 1
time.sleep(1)
if __name__ == '__main__':
f = Foo() # is now Process
f.start() # runs f.loop()
while 1:
time.sleep(1)
print f.number * 10
答案 1 :(得分:0)
$("#areas").on("change", function(){
setTimeout(function(){
$("#back").attr('disabled','disabled');
},2000)
})
按钮被禁用,并在10秒后启用。
#back
答案 2 :(得分:0)
以下是否响铃?
$("#back").prop("disabled", true);
$.ajax({
...
success: function(){
// ..Gathere the information
$("#back").prop("disabled", false);
}
});
我还建议你硬编码禁用="禁用"在HTML本身,所以你不需要在上面的代码第一行。
<input type="button" disabled="disabled" value="BACK" id="back">
[编辑]
我发现你不使用ajax方法。但我认为你确实知道数据处理的开始和结束位置,所以只需要调用prop方法。
$("#area").append(newContent); // wild guess you final code
$("#back").prop("disabled", false);
如果你没有选择添加该行,还有另一种我以前没有尝试过的解决方案。
$('#area').on("DOMSubtreeModified",function(){
// Some condition indecates the process has done
if ( ... ) {
$("#back").prop("disabled", false);
}
});
注意:确认支持的DOMSubtreeModified浏览器