【发布时间】:2016-06-10 10:25:57
【问题描述】:
我绞尽脑汁想弄清楚如何正确使用它。大多数示例都使用 ajax,所以这甚至是不可能的。
在我的示例中,我创建了一个使元素淡出的函数。我知道.fadeOut 可以有回调,但我想避免这种情况只是为了学习。
我读到我需要返回一个承诺,否则$.when().done() 会立即触发。即使我附加了一个承诺,它仍然会立即触发。
这是我的简单代码
function hide() {
return $("#element").fadeOut(250).promise();
}
$.when( hide() ).done(function(){
alert("Hidden");
});
是否有某些方法不能与$.when() 一起使用,例如.fadeOut()?
在理解方面的任何帮助都会很棒。
【问题讨论】:
-
$.Deferred会很棒 -
“即使我附加了一个承诺,它仍然会立即触发。” 请注意,
fadeOut的持续时间只有250msjs在 Question ;尝试增加duration的.fadeOut()吗?预期的结果是什么? -
@NorlihazmeyGhazali 你能解释一下吗?
-
@guest271314 是的,我已经增加到 10000 毫秒,它仍然会立即触发。
hide()函数由按下按钮触发。我不确定这是否会导致某种问题。 -
如果你传递多个参数给它,你只需要使用
$.when。否则,直接在该参数上调用.done。