jQuery Mobile输入没有来自外部链接的样式

时间:2012-04-24 10:31:04

标签: javascript jquery-mobile

我有一个非常基本的jquery移动页面,它有一个data-role:page中的3 index.php个div。第一页只是一张背景图片,屏幕中央有input type="tel" position:fixed。如果我直接在iPhone上加载网站,风格和定位都是正确的。

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

我已经尝试了我能想到的所有内容(以及很多可能甚至没有意义的事情),例如绑定到pagebeforeloadpageinit,{{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" ); }); ),但我发现没有任何东西可以解释为什么会发生这种情况。

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

1 个答案:

答案 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。

info source