本身定义了一个动画抽奖函数queryRoll,函数里面用到ajax 同步取数据,取完数据返回时候在执行动画效果。然后在执行点击按钮执行queryRoll之前调用一个函数alerts弹出一个层。
现在的问题是由于同步导致了alerts的效果弹不出来,请问这是为啥
queryRoll(){
getResult:function (){
//同步取数据
}
}
$(function (){
$(".btn").click(function (){
alerts('请稍后',function (){
queryRoll();
})
})
})
如果改成异步就可以了
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
猜测alerts函数是不是类似如下实现的
alerts=function(message,callback){
callback();
showMessge(mesage);
};
在callback没有返回之前showMessge对应的DOM元素渲染是没有机会执行的
至于改成异步可以了,是因为callback会马上返回,showMessge顺利执行
比较好的做法是在取数据的返回函数中 进行效果的展示 这样无论同步异步都可以实现