Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery移动绑定微调器到ChangePage_Javascript_Jquery_Jquery Mobile_Binding_Jquery Events - Fatal编程技术网

Javascript jQuery移动绑定微调器到ChangePage

Javascript jQuery移动绑定微调器到ChangePage,javascript,jquery,jquery-mobile,binding,jquery-events,Javascript,Jquery,Jquery Mobile,Binding,Jquery Events,经过大量的谷歌搜索和阅读论坛,我还没有找到一个合适的答案 到目前为止,我所发现的情况如下: function customLoader(url){ showLoader(); $.mobile.changePage(url); hideLoader(); } 显示加载消息 呼叫更改页面 隐藏加载消息 这将是可行的,但我必须这样做,每次我调用加载/更改页面,这是很多 这将使我要么做一个中间人函数,如下所示: function customLoader(url){

经过大量的谷歌搜索和阅读论坛,我还没有找到一个合适的答案

到目前为止,我所发现的情况如下:

function customLoader(url){
    showLoader();
    $.mobile.changePage(url);
    hideLoader();
}
显示加载消息 呼叫更改页面 隐藏加载消息 这将是可行的,但我必须这样做,每次我调用加载/更改页面,这是很多

这将使我要么做一个中间人函数,如下所示:

function customLoader(url){
    showLoader();
    $.mobile.changePage(url);
    hideLoader();
}
是否存在将其绑定到更改页面事件的方法? 因此,它从调用第二个changePage开始显示,但在changePage离开后隐藏

我知道上面的中间人方法会起作用,但我希望实现更整洁、更好的方法,因为有很多html/js文件。

类似这样的方法:

$('#index').live('pagebeforeshow',function(e,data){    
    $('#test-button').live('click', function(e) {
        $.mobile.showPageLoadingMsg(true);
        setTimeout(function () {
            $.mobile.changePage('#second');
        }, 1000);
    });    
});

$("#second").live('pageshow', function () {
    $.mobile.hidePageLoadingMsg();
});
超时仅在此处,以便您可以看到它正在成功工作。这是一个简单的示例,因此可以快速启动transition。在真实代码中删除它

下面是一个例子:

每个更改页面事件周期都有一个事件顺序,当页面a转换到页面B时发生。无论使用哪个操作触发更改页面,都可以在页面B i成功加载时禁用它。如果要查找有关页面加载顺序的详细信息,请查看以下链接:。在这里,您将发现许多关于jQM页面动态的信息

如果要在每个页面转换中实现此功能,请使用以下命令:

$('[data-role="page"]').live('pageshow', function () {
    $.mobile.hidePageLoadingMsg();
});
如果每次成功加载并显示不同的页面时ajax加载程序都处于打开状态,则这将隐藏ajax加载程序。

类似以下内容:

$('#index').live('pagebeforeshow',function(e,data){    
    $('#test-button').live('click', function(e) {
        $.mobile.showPageLoadingMsg(true);
        setTimeout(function () {
            $.mobile.changePage('#second');
        }, 1000);
    });    
});

$("#second").live('pageshow', function () {
    $.mobile.hidePageLoadingMsg();
});
超时仅在此处,以便您可以看到它正在成功工作。这是一个简单的示例,因此可以快速启动transition。在真实代码中删除它

下面是一个例子:

每个更改页面事件周期都有一个事件顺序,当页面a转换到页面B时发生。无论使用哪个操作触发更改页面,都可以在页面B i成功加载时禁用它。如果要查找有关页面加载顺序的详细信息,请查看以下链接:。在这里,您将发现许多关于jQM页面动态的信息

如果要在每个页面转换中实现此功能,请使用以下命令:

$('[data-role="page"]').live('pageshow', function () {
    $.mobile.hidePageLoadingMsg();
});

如果每次成功加载和显示不同的页面时都打开ajax加载程序,那么这将隐藏ajax加载程序。

也许这对许多人来说太多了,但我发现了一个不同于的解决方案,该解决方案在

在页面的“显示”事件中,我使用$.mobile.loadingshow;,因此,当页面出现时,会显示加载微调器

我使用Jquery移动路由器还有很多,但它解决了这个问题

虽然要隐藏微调器,我必须使用$'.ui loader.hide;,这很奇怪,我知道

也许只是监听适当的事件并触发微调器也会起作用,因为JQMR就是这样做的


我使用的是JQM 1.4.2…

可能对许多人来说太多了,但我发现了一个不同于的解决方案

在页面的“显示”事件中,我使用$.mobile.loadingshow;,因此,当页面出现时,会显示加载微调器

我使用Jquery移动路由器还有很多,但它解决了这个问题

虽然要隐藏微调器,我必须使用$'.ui loader.hide;,这很奇怪,我知道

也许只是监听适当的事件并触发微调器也会起作用,因为JQMR就是这样做的

我正在使用JQM 1.4.2