jQuery 移动输入的样式不是来自外部链接

jQuery Mobile input not styled coming from external link

本文关键字:外部 链接 移动 输入 样式 jQuery      更新时间:2023-09-26

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

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

我基本上尝试了我能想到的一切(以及许多可能甚至没有意义的东西),例如绑定到pagebeforeloadpageinitpageshow等,例如:

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

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

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

在页面之间传递参数

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

如果查询,您可以向项目添加两个插件页面之间需要参数。有一个轻量级页面params 插件和功能更全的 jQuery 移动路由器插件用于脊椎.js或脊椎.js。

信息来源