我有一个非常基本的jquery移动页面,它有一个data-role:page
中的3 index.php
个div。第一页只是一张背景图片,屏幕中央有input type="tel"
position:fixed
。如果我直接在iPhone上加载网站,风格和定位都是正确的。
但是,人们会通过传递参数的外部链接(例如?event=123123123
,随机字符串)到达网站。当以这种方式加载时,第一页ALWAYS加载非样式,即输入框忽略所有css,jquery.css和我自己的,无论是内联,在头部声明,从外部文件加载等等。如果我刷新页面,那么样式就会启动,看起来应该是这样。
我已经尝试了我能想到的所有内容(以及很多可能甚至没有意义的事情),例如绑定到pagebeforeload
,pageinit
,{{1}等等,例如:
pageshow
我已经把所有东西扔在墙上,看看有什么东西粘在上面。沮丧的阶段,以及没有任何事情陷入困境。
我发现了很多关于修改内部链接的方法的信息(例如$( '#step1' ).live( 'pagebeforecreate',function(event){
// alert( 'This page was just enhanced by jQuery Mobile!' );
$('<div id="formbox"><form><input type="tel" name="number" id="number" value="" style="width:87%; height:40px; font-size:36px; font-weight: bold; left:14px; position:relative; text-align:center;" /></form></div>').appendTo('#formboxouter');
// var $container = $('#step1');
// refreshStyles($container);
$('#formbox').trigger('create');
// $( window.document ).trigger( "mobileinit" );
});
),但我发现没有任何东西可以解释为什么会发生这种情况。
为什么传递外部参数会导致样式无法加载?
答案 0 :(得分:0)
您可能需要阅读有关参数的JQM文档。另请尝试使用$('.ui-page').trigger('create');
代替$('#formbox').trigger('create');
在页面之间传递参数
jQuery Mobile不支持查询 参数传递到内部/嵌入页面。例如,如果 框架看到“#somePage?someId = 1”的链接,它将其解释为 “#somePage”并导航到ID为的内部页面div somePage并将#somePage?someId = 1的数据网址应用于该页面 容器。随后调用其他参数如 “#somePage?someId = 2”将找到相同的div,因为jQuery Mobile 指的是div上的data-url,它只设置一次并且会 留在#somePage?someId = 1。
如果查询,您可以添加两个插件到项目中 页面之间需要参数。有一个轻量级的page params plugin和功能更全面的jQuery Mobile router plugin 用于backbone.js或spine.js。