我在URL中有一个名为$cat
(代表'category')的变量。交换jquerymobile的样式表,带链接
取决于它是否是“A”或“B”我使用一个链接交换样式表:
<?php
if($cat == "a") { ?>
<link rel="stylesheet" href="/css/styleA.css">
<?php }
elseif($cat == "b") { ?>
<link rel="stylesheet" href="/css/styleB.css">
<?php } ?>
styleA.css使头蓝色的background-color
,并styleB.css使得红
<div id="header" data-role="header" data-position='fixed'>...</div>
如果我点击一个链接,看起来像这样的:
<a href="index.php?cat=a">Click for red</a>
<a href="index.php?cat=b">Click for blue</a>
该URL实际上起作用(内容被包含取决于$ cat),并且我得到$ cat的值,但样式表似乎没有交换,因为颜色没有改变。但是,如果我重新加载页面(使用前面链接给出的URL)样式表交换和一切正常工作。
我对我正在使用的网站的桌面版本使用了相同的方法,并且一切正常。 这个问题似乎只会出现,如果我使用jQuery的手机。
有没有人看到为什么这不工作,因为它应该?
编辑(添加HTML): 这是相当多了,但这里是它的其余部分:
headpart:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title></title>
<link rel="stylesheet" href="https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jquery.mobile-1.3.1.min.css">
<!-- Extra Codiqa features -->
<link rel="stylesheet" href="/css/codiqa.ext.css">
<link rel="stylesheet" href="/css/style.css">
<?php if($cat == "a") { ?> <link rel="stylesheet" href="/css/styleASS.css"> <?php }
if($cat == "b") { ?> <link rel="stylesheet" href="/css/styleBB.css"> <?php }
?>
<!-- jQuery and jQuery Mobile -->
<script src="https://d10ajoocuyu32n.cloudfront.net/jquery-1.9.1.min.js"></script>
<script src="https://d10ajoocuyu32n.cloudfront.net/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<!-- Extra Codiqa features -->
<script src="https://d10ajoocuyu32n.cloudfront.net/codiqa.ext.js"></script>
</head>
<div data-role="page" id="page">
<div id="panel_menu" data-role="panel" data-display="overlay">
<ul data-role="listview">
<li role="heading">Navigation</li>
<li><a href="#">Home</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Service</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">Login</a></li>
</ul>
</div>
<div id="header" data-role="header" data-position='fixed'>
<h1>Header</h1>
<a href="#panel_menu">Menu</a>
</div>
<div data-role="content">
<?php include "$menu_page_content";?>
<a href="?cat=a&lang=en&menu=home">a</a>
<a href="?cat=b&lang=en&menu=home">b</a>
</div>
<div data-role="footer" data-position="fixed" data-theme="d">
<div data-role="navbar" class="ui-icon-nodisc">
<ul>
<li><a href="#" id='language' data-icon='custom'>Change Language</a></li>
<li><a href="#" id='category' data-icon="custom" >Change Category</a></li>
<li><a href="#" id='contact' data-icon="custom" >Contact</a></li>
</ul>
</div>
</div>
</div><!-- page -->
EDITIT: 其上传到一个免费的主机托管服务提供商:here 你可以点击内容区域中的某个链接,也可以点击页脚区域中的“类别”。点击&重新加载页面。
我不认为这取决于我使用的设备上,因为我在这个问题上我使用的所有设备(IE,FF,GC,iPhone/Pod/Pad,HTC One,...)。当然你是对的,我可能只是使用JS,但我想了解为什么这不与PHP工作 – dabe
设备并不真正意味着对不起。它更多的是关于浏览器。而且大多数浏览器在不重新加载样式表的情况下都具有相同的行为。我认为移动浏览器试图下载它的次数更少,因为可用带宽并不相同。 – Sugar
这个问题出现在我能够测试的每个浏览器中的每个设备上,另外我在这个网站的桌面版本上使用完全相同的方法,并且它似乎在那里完美地工作。编辑:桌面版本也适用于每个移动设备(到目前为止) – dabe