javascript - 这段代码中,jquery中promise done方法为什么无效呢?
本文介绍了javascript - 这段代码中,jquery中promise done方法为什么无效呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
setTimeout(function(){
$("div.A,div.B").fadeOut(500).promise().done(showIntroSection);
function showIntroSection(){
console.log("delay");
$("div.C").animate({"opacity":"1","width":"70%"},10000).promise().done(console.log("1"));
}
},1000);
如上代码,对div.A,div.B执行了fade()方法后,500ms延迟后可以正常的输出delay,表示第一个promise done方法成功,但是在done方法的showIntroSection函数内部,div.C的动画确是和console.log("1")同时执行的,
问题在于 showIntroSectin函数中,不是应该先执行完10000ms的动画,再输出这个console.log("1")的吗?
这个promise done方法为什么无效呢?
(试过改成when then什么的,都是一样的症状)
不明白问题出在哪里 希望大家给些帮助
解决方案
虽然我没写过jquery..但是听问题描述和看代码感觉
我觉得你把$("div.C").animate({"opacity":"1","width":"70%"},10000).promise().done(console.log("1"));
中的console.log("1")
改成function(){console.log("1")}
应该就可以了。
这篇关于javascript - 这段代码中,jquery中promise done方法为什么无效呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文