如何在changePage期间停止jQuery Mobile调用$.mobile.loading('hide')?

2024-05-21

我试图阻止 jQuery Mobile 在调用 ChangePage 时隐藏加载微调器。

程序流程如下所示,从单击链接开始,该链接的单击事件定义如下:

$('body').delegate('.library-link', 'click',  function() {
    $.mobile.loading( 'show' );
    $.mobile.changePage($('#page-library'));
    return false;
});

单击链接后,pagebeforeshow事件被触发,这会触发一个函数从本地存储填充页面,或者进行 ajax 调用来获取数据。

$(document).on('pagebeforeshow', '#page-library', function(event){
   ui.populate_data(); 
});

In ui.populate_data()我们从本地存储获取数据或进行 ajax 调用。

ui.populate_data = function() {
    if (localdata) {
        // populate some ui on the page
        $.mobile.loading( 'hide' );
    } else {
        // make an ajax call
    }
};

如果数据存在,我们将数据加载到容器中并隐藏加载微调器。如果没有,它会进行 ajax 调用,该调用完成后将数据保存在本地存储中,并调用ui.populate_data()

问题是,之后pagebeforeshow事件已完成,changePage 正在调用$.mobile.loading( 'hide' ),即使数据可能还不存在。除了暂时重新定义之外,我找不到任何方法来阻止 ChangePage 隐藏微调器$.mobile.loading,这感觉很不对劲:

$('body').delegate('.library-link', 'click',  function() {
    $.mobile.loading( 'show' );
    loading_fn = $.mobile.loading;
    $.mobile.loading = function() { return; };
    $.mobile.changePage($('#page-library'), {showLoadMsg: false});
    return false;
});

在我的 ui 函数中隐藏微调器之前:

ui.populate_data = function() {
    if (localdata) {
        // populate some ui on the page
        if (typeof loading_fn === 'function') {
            $.mobile.loading = loading_fn;
        }
        $.mobile.loading( 'hide' );
    } else {
        // make an ajax call
    }
};

当然,必须有一种方法可以完全控制加载小部件的显示和隐藏,但我找不到它。我尝试通过{showLoadMsg: false}更改页面,但根据码头的建议,它仅在通过ajax加载页面时执行操作,而我没有这样做。


也许这对很多人来说太多了,但我找到了评论中所写的解决方案(这对我来说不起作用)。

我用jquery移动路由器 http://github.com/azicchetti/jquerymobile-router在页面的“显示”事件中,我这样做$.mobile.loading("show");,因此当页面出现时,它会显示加载微调器。

虽然为了隐藏微调器,我不得不使用$('.ui-loader').hide();,这很奇怪,我知道......

我经常使用 Jquery Mobile Router,但它解决了这个问题。

(也许只听适当的事件并触发旋转器也可以,因为这就是 JQMR 所做的......)

我正在使用 JQM 1.4.2...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在changePage期间停止jQuery Mobile调用$.mobile.loading('hide')? 的相关文章

随机推荐

  • 在 android 中,第一次单击时按钮侦听器未注册

    因为我是 Android 新手 所以我遇到了按钮监听器的问题 我正在使用 OnClickListener 来处理胸像 但它第一次点击后不执行一旦我单击多个 它就会表现良好 但如何使其在第一次单击时成为可能 这是我的代码 public cla
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 使用后退按钮启动 Activity

    我正在 Android 中开发一个应用程序 我正在寻找解决方案 有一个活动 例如 A1 通过单击按钮 用户可以转到另一个活动 例如 A2 现在 一旦用户完成 A2 活动 他就会单击后退按钮 返回到上一个活动 A1 这是众所周知的事实 A1此
  • SQL Server默认字符编码

    默认情况下 Microsoft SQL Server 中数据库的字符编码集是什么 如何查看 SQL Server 中当前的字符编码 编码 In most cases SQL Server stores Unicode data i e th
  • 无法登录 Google Play 游戏服务

    我在开发者控制台上使用包名称和正确的签名证书设置了我的游戏 并为其创建了排行榜 但没有创建任何成就 然后 我从以下位置下载了示例 Type A Number Challenge 和 BaseGameUtils https developer
  • 在 C# 中何时使用 ArrayList 而不是 array[]?

    我经常使用一个ArrayList而不是 正常 array 当我使用时 我感觉好像我在作弊 或懒惰 ArrayList 什么时候可以使用ArrayList在数组上 数组是强类型的 并且可以很好地用作参数 如果您知道集合的长度并且它是固定的 则
  • BitmapFactory.decodeResource() 忽略 jpg 图像的 inPreferredConfig 选项

    我尝试将jpeg资源图像加载到ARGB 8888格式的位图 BitmapFactory Options opts new BitmapFactory Options opts inPreferredConfig Bitmap Config
  • 使用 YUI 创建 HTML 元素

    我正在使用以下代码使用 YUI 在页面主体中创建 html 元素 这段代码不会产生任何错误 问题是 段落元素未在 html 页面中创建
  • 在 LINQ 中执行 FirstOrDefault 的替代方法

    我有一个成员资格表 用于记录用户是否是列表的成员 当用户的成员资格发生更新时 会写入新记录 并且先前的记录保持原样 从而可以维护其成员资格的历史记录 要获取用户的会员身份 需要选择他们最近的条目 下面是一些用户列表成员资格数据的示例 目的是
  • Geodjango距离查询未检索到正确的结果

    我正在尝试根据地理位置的接近程度来检索一些帖子 正如您在代码中看到的 我正在使用 GeoDjango 并且代码在视图中执行 问题是距离过滤器似乎被完全忽略了 当我检查查询集上的距离时 我得到了预期距离 1m 和 18km 但 18km 的帖
  • MonoDroid 和 MonoTouch 中的可移植类库程序集引用问题

    当我尝试构建引用 PCL 的 MonoDroid 或 MonoTouch 项目时 我的项目遇到问题 其中有适用于 Net 4 5 Windows Phone 8 WinRT MonoTouch 和 MonoDroid 的 PCL 如下所示
  • 如何在 Perl 脚本中加密或隐藏密码?

    我正在研究 Perl 脚本 它使用Expect http search cpan org dist Expect通过 telnet 登录到远程计算机 不要问 必须使用 telnet 我还根据需要执行 perforce p4 登录操作 并使用
  • 如何考虑子类型的多态性

    里氏替换原则指出 超类型的不变量必须保留在子类型中 我对这个原理和多态性的交叉特别感兴趣 事实上 特别是子类型多态性 参数多态性和 Haskell 类型类似乎就是这种情况 因此 我知道当函数的参数是逆变且返回类型是协变时 函数是子类型 我们
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • 数据读取过程中遇到致命错误

    我正在进行定期更新表扫描 Using connect1 As New MySqlConnection ConnectLocalhost serverString connect1 Open Dim cmd New MySqlCommand
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • 在 APL 中有效执行 scanl 的正确方法是什么?

    继我的上一个问题 https stackoverflow com questions 70272288 what is the space time complexity of the scan operator in apl 看起来 AP
  • 如何合并非常大的 numpy 数组?

    我会有很多Numpy https docs scipy org doc numpy 1 14 0 reference arrays https docs scipy org doc numpy 1 14 0 reference arrays
  • 映射文件和链接器文件之间的区别

    链接器生成的映射文件与包含内存段本身的链接器文件有什么区别 链接器 文件是链接器的一组命令 涉及如何在内存中布置所有内容 并由程序员创建 映射 文件是所有内容在内存中位置的列表 由链接器创建
  • 如何在changePage期间停止jQuery Mobile调用$.mobile.loading('hide')?

    我试图阻止 jQuery Mobile 在调用 ChangePage 时隐藏加载微调器 程序流程如下所示 从单击链接开始 该链接的单击事件定义如下 body delegate library link click function mobi