起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2373|回复: 7

[处理中3] js中函数执行顺序

[复制链接]

506

主题

1631

帖子

3395

积分

论坛元老

Rank: 8Rank: 8

积分
3395
QQ
发表于 2017-9-29 15:49:50 | 显示全部楼层 |阅读模式
  1. Model.prototype.Week = function() {
  2.                 var cy = $(".active-y").attr("value");
  3.                 var cm = $(".active-m").attr("value");
  4.                 if (cy != factWeekInfo.data.cYear) {
  5.                         $(".active-y").css({
  6.                                 "background-color" : "#f4f4f4",
  7.                                 "color" : "#333333"
  8.                         }).removeClass("active-y");
  9.                         $(".x-yearbtns").find("button[value=" + factWeekInfo.data.cYear + "]").css({
  10.                                 "background-color" : "#33a0d6",
  11.                                 "color" : "#ffffff"
  12.                         }).addClass("active-y");
  13.                 }

  14. this.yearRenderView(factWeekInfo.data.cYear);
  15.                
  16.                 if (cm != factWeekInfo.data.cw.mnum) {
  17.                         $(".active-m").css({
  18.                                 "background-color" : "#f4f4f4",
  19.                                 "color" : "#333333"
  20.                         }).removeClass("active-m");
  21.                         $(".x-monthbtns").find("button[value=" + factWeekInfo.data.cw.mnum + "]").css({
  22.                                 "background-color" : "#33a0d6",
  23.                                 "color" : "#ffffff"
  24.                         }).addClass("active-m");
  25.                 }
  26. };
复制代码
我在上面的方法中调用了this.yearRenderView(factWeekInfo.data.cYear);这个带有异步请求回调函数的方法,怎么让Wee()这个方法在运行到 this.yearRenderView(factWeekInfo.data.cYear);这一步的时候等方法运行完了再运行剩下的

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
发表于 2017-9-29 16:03:55 | 显示全部楼层
使用回调函数就可以了啊。异步回调函数
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
发表于 2017-9-29 16:05:44 | 显示全部楼层
将下面的函数,用函数包裹起来,直接使用闭包调用,完事
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3395

积分

论坛元老

Rank: 8Rank: 8

积分
3395
QQ
 楼主| 发表于 2017-10-9 17:03:40 | 显示全部楼层
wangjikuen 发表于 2017-9-29 16:03
使用回调函数就可以了啊。异步回调函数

怎么给X5默认定义的函数写回调函数?
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
发表于 2017-10-9 17:07:47 | 显示全部楼层
qweasdzxc 发表于 2017-10-9 17:03
怎么给X5默认定义的函数写回调函数?

标准的JS写法啊,你是想知道AJAX的异步回调,亦或者别的什么回调?X5默认定义的函数是哪些?全局变量的那种?
回复 支持 反对

使用道具 举报

59

主题

274

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
发表于 2017-10-9 17:10:24 | 显示全部楼层
qweasdzxc 发表于 2017-10-9 17:03
怎么给X5默认定义的函数写回调函数?

你函数的执行过程,你要做的,
第一:判定异步函数执行完毕
第二:完毕之后,执行下面的函数。
至于怎么判定异步函数执行完毕,方法太多了,看你的异步函数是什么玩意了,总会有回调的
回复 支持 反对

使用道具 举报

506

主题

1631

帖子

3395

积分

论坛元老

Rank: 8Rank: 8

积分
3395
QQ
 楼主| 发表于 2017-10-9 17:17:55 | 显示全部楼层
wangjikuen 发表于 2017-10-9 17:10
你函数的执行过程,你要做的,
第一:判定异步函数执行完毕
第二:完毕之后,执行下面的函数。

代码如下:这个class:active-y是在_this.setYear();的回调函数里设置的,像我那样写的话无法获取到值,具体写么修改
  1. Model.prototype.modelModelConstructDone = function(event) {
  2. // 加载时间选择按钮
  3. asCore.ajax("/oa/queryCurrentWeeksAction", null, function(data, flag, mes) {
  4. if (flag == "success") {
  5. currentWeekInfo = data;
  6. factWeekInfo = data;
  7. var year = {
  8. cYear : currentWeekInfo.data.cYear,
  9. years : []
  10. };
  11. for (var i = 0; i < 5; i++) {
  12. year.years.push({
  13. val : currentWeekInfo.data.cYear - i
  14. });
  15. }
  16. // 加载年份按钮
  17. _this.setYear(year);
  18. // 加载月份按钮
  19. _this.setMonth();
  20. // 加载周别按钮
  21. _this.setWeek();

  22. } else {
  23. asCore.toast(mes);
  24. }
  25. });

  26. var cy=$(".active-y").attr("value");
  27. var cm=$(".x-fl-button .active-m").attr("value");
  28. var cw=$(".active-w").attr("value");
  29. debugger
  30. };
复制代码



回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36183
发表于 2017-10-13 16:31:26 | 显示全部楼层
_this.setYear怎么定义的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-4 09:21 , Processed in 0.055386 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表