jquerymobile pagecontainerbeforeshow仅在刷新页面时运行

时间:2015-05-05 17:29:33

标签: cordova jquery-mobile

我正在开发我的第一个混合应用程序,并且我使用jquerymobile 1.4。

文档建议使用方法pagecontainer。 好吧,我需要在显示页面之前动态填充xml文件的一个选择whit的值。 如果调试app,这只在页面充值时运行,而不是在打开时运行。 (Chrome导航)。 我在设备中测试过但不起作用。 我阅读了我在论坛上发现的所有内容,并尝试了多种方法,但都没有。

这是我的代码:

 $(document).on('pagecontainerbeforeshow', function(event, ui){
             if(ui.toPage.is('#buscar')){
                    $.get("auxfiles/regiones.xml", function (xml) {
                        $(xml).find("españa").each(function (idx ,v) {                        
                        $(v).find("item").each(function( i , vi) {
                        if ($(vi).text() === "Todas"){
                        $("#select-region").append('<option value = "' + idx + '" selected> ' + $(vi).text()  + '</option>');
                        $('#select-region').selectmenu('refresh');
                    }else{   
                        $("#select-region").append('<option value="' + idx + '"> ' + $(vi).text()  + '</option>');
                    }   
                    });                                                           
                  });
                });
            };

        });     

提前致谢。

编辑:我发现另一个问题! 如需查看,请访问: Pagina de prueba 当页面加载时,它可以,但是,如果你点击“蓝色房车”,打开页面“buscar.html”和页脚图像非常大,选择不填充。 如果点击“刷新”,一切正常!

1 个答案:

答案 0 :(得分:1)

当jQuery Mobile加载buscar.html时,它实际上只是获取第一个data-role =“page”div的内容并将其插入当前页面。这是默认的AJAX导航:

http://demos.jquerymobile.com/1.4.5/navigation-linking-pages/

所以buscar.html中的脚本没有运行,导航栏中的图像很大,因为你的index.css仍在改变网格中的img标签。

如果你想保持AJAX导航以获得不错的页面转换,那么将脚本移动到data-role =“page”DIV中,甚至移动到索引页面中;并使你的CSS更适合img大小。

另一个选项是通过向链接添加数据-ajax =“false”来阻止AJAX导航。