0

我有一个非常基本的 jquery 移动页面,它是 3 个data-role:pagediv 合二为一index.php。第一页只是一个背景图像和input type="tel"屏幕position:fixed中心的一个。如果我直接在 iPhone 上加载网站,样式和定位都是正确的。

?event=123123123然而,人们将通过传入参数(例如,随机字符串)的外部链接到达该站点。以这种方式加载时,第一页总是以非样式加载,即输入框忽略所有 css,包括 jquery.css 和我自己的,无论是内联的、在头部声明的、从外部文件加载的等等。如果我刷新页面,然后样式启动,看起来应该是这样。

我基本上已经尝试了我能想到的所有东西(以及很多可能甚至没有意义的东西),比如绑定到pagebeforeload,pageinitpageshow,例如:

$( '#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" );
});

我已经到了“把所有东西都扔到墙上,看看有什么东西会粘住”的沮丧阶段,好吧,没有任何东西被粘住。

我找到了很多关于修改内部链接(例如rel=external)的方法的信息,但我没有发现任何似乎可以解释为什么会发生这种情况的信息。

为什么传递外部参数会导致样式无法加载?

4

1 回答 1

0

您可能需要阅读有关参数的 JQM 文档。也尝试$('.ui-page').trigger('create');代替$('#formbox').trigger('create');

在页面之间传递参数

jQuery Mobile 不支持将查询参数传递给内部/嵌入式页面。例如,如果框架看到指向“#somePage?someId=1”的链接,它会将其解释为“#somePage”并导航到 ID 为 somePage 的内部页面 div 并应用 #somePage?someId= 的数据 URL 1 到该页面容器。对其他参数(例如“#somePage?someId=2”)的后续调用将找到相同的 div,因为 jQuery Mobile 引用了 div 上的 data-url,该 url 仅设置一次并将保持在 #somePage?someId=1。

如果页面之间需要查询参数,您可以将两个插件添加到您的项目中。有一个轻量级页面参数插件和一个功能更全面的jQuery Mobile 路由器插件 ,可与主干.js 或脊柱.js 一起使用。

信息来源

于 2012-04-24T10:41:15.807 回答