jQuery MiniUI

 找回密码
 立即注册
查看: 4384|回复: 3
打印 上一主题 下一主题

mini.loading为何没有进行加载 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-12-20 14:06:56 |只看该作者 |倒序浏览
本帖最后由 money 于 2013-12-20 14:25 编辑

想是实现mini.loading的加载功能,在进行逻辑代码时,弹出个loading框,代码如下

var msgid = null;
msgid = mini.loading("请稍后....", "Loading");
var list = mini.get("tree").getList();
$.each(list, function() {
            此处为逻辑代码
});
mini.hideMessageBox(msgid);

请帮忙看看有什么问题?为何没有出现loading框?注:list的数据有很多,获取时间大概20秒的样子

如果我写成下面这样,会弹出loading框,但是是在处理完逻辑代码后,才弹出来的,停留5秒后结束,不是我想要的效果

var msgid = null;
msgid = mini.loading("请稍后....", "Loading");
var list = mini.get("tree").getList();
$.each(list, function() {
            此处为逻辑代码
});
setTimeout(function () {
        mini.hideMessageBox(msgid);
    }, 5000);

Rank: 8Rank: 8

沙发
发表于 2013-12-20 16:01:24 |只看该作者
很简单,其实是显示出来了,但是时间太短,所以你看不到

你的each内部执行时间归内部,并非说,内部执行完了,才会去执行下面的hidemessage();

你可以这样
$.each(list, function(e) {
       if(e == list.length-1)   {
            //执行hidemessage()
      }
})

Rank: 3Rank: 3

板凳
发表于 2013-12-20 17:04:01 |只看该作者
factory 发表于 2013-12-20 16:01
很简单,其实是显示出来了,但是时间太短,所以你看不到

你的each内部执行时间归内部,并非说,内部执行完了,才 ...

按照这样的方法尝试了下,好像也不行,也没有看到loading框

Rank: 8Rank: 8

地板
发表于 2013-12-20 17:35:23 |只看该作者
money 发表于 2013-12-20 17:04
按照这样的方法尝试了下,好像也不行,也没有看到loading框

$.each是不会阻塞你下面的代码,所以你直接写的时候会立即执行掉hide
放在each循环里,if(e==list.length-1)遍历到最后一项的时候触发
你试下在if里面hide前加个alert看下

Archiver|普加软件

GMT+8, 2025-7-15 14:28 , Processed in 1.028913 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部