【发布时间】:2014-05-21 19:28:45
【问题描述】:
我今天对延迟 jquery 执行的所有可用代码感到非常困惑。
现在我已经写好了
$('#filterTheTable').click(function () {
$('#waitingGif').show('fast')
.promise()
.done(FilterTable);
所以 GIF 出现了,几秒钟后表格自行过滤,一切都很好(除了我没有隐藏 GIF。
所以我把这个扔进去......
$('#filterTheTable').click(function () {
$('#waitingGif').show('fast')
.promise()
.done(FilterTable);
$('#waitingGif').hide('fast');
正如你们中的许多人可能已经看到的那样,gif 闪烁一秒钟,FilterTable 函数继续执行。
我已经阅读了一些内容,但似乎无法完全理解延迟函数。所以我放弃了,将hide('fast') 代码放在FilterTable 中,但现在 GIF 在函数执行时冻结。
然后我想哦,也许我可以再次调用 promise!
$('#filterTheTable').click(function () {
$('#waitingGif').show('fast')
.promise()
.done(FilterTable)
.promise()
.done(Function(){$('#waitingGif').hide('fast')});
但我收到一个错误,即该对象不支持承诺(我现在假设 .Done() 没有返回正确的类型)
我知道这必须很容易做到……但我似乎并没有全神贯注于此。有什么好的帖子/解决方案可以让我重回正轨吗?
谢谢大家。
【问题讨论】:
-
您的目标是在加载 gif 时显示加载图像,然后在完成时将其删除,然后显示 gif?
-
.done().promise()没有意义。那里的思考过程是什么? .done() 已经返回了相同的承诺。 -
你能发个小提琴吗?
-
@Epik 我的目标是显示加载中的 gif,然后在 gif 旋转时运行代码,然后将其隐藏。
-
@KevinB 我只是想把 promise 串起来,x 也是,然后是 y,然后是 z
标签: javascript jquery