2012-04-24 58 views
0

未来我有一个非常基本的jQuery Mobile的页面,它是在一个index.php 3周data-role:page的div。第一页只是一个背景图片,屏幕中央有一个input type="tel"position:fixed。如果我直接在iPhone上加载网站,风格和定位都是正确的。jQuery Mobile的投入不是从样式化的外部链接

但是,人们将通过传入参数的外部链接(例如,?event=123123123,一个随机字符串)到达该网站。当以这种方式加载时,第一页总是加载未定义样式,即输入框忽略所有css,包括jquery.css和我自己的,不管它是内联的,头部声明的,从外部文件加载的等等。如果我刷新页面,然后风格开始,它看起来应该是。

我已经试过基本上所有我能想到的(和很多事情可能甚至不意义),如pageshow结合pagebeforeloadpageinit等例如像:

$('#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),但我没有找到任何可以解释为什么会发生这种情况的信息。

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

回答

0

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

传递参数的页面

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

如果在页面之间需要查询 参数,则可以将两个插件添加到项目中。与backbone.js或spine.js一起使用的是轻量级的page params plugin和更全面的jQuery Mobile router plugin

info source

+0

感谢您的答复。我愚蠢了一点,但最终问题实际上是错误地设置为“'。当更改为“解决了缩放问题。我认为该网页试图呈现在320px而不是640的iPhone 4s使用,导致该框虚假渲染,直到刷新。 – Davezatch 2012-04-26 09:45:10