我认为标题是不言自明的,但我们开始吧:我是 jQuery 和移动开发的新手。在使用 jQuery Mobile 标准 .css 文件(我实际上在这里找到的解释:http: //www.adobe.com/devnet/dreamweaver/articles/theme-control-jquery-mobile.html)时,我正在尝试动态交换一个 div 内容通过 JS 函数传递给另一个,但 css 主题不会延续。这是我的代码的简化版本:
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="jquery.mobile-1.2.0.min.css" />
<script src="jquery-1.8.2.min.js"></script>
<script src="jquery.mobile-1.2.0.min.js"></script>
<script type="text/javascript">
function callNext () {
$('#div_auth').html($('#div_functions').html());
}
</script>
</head>
<body>
<div data-role="page" id="div_main">
<div data-role="header">
<h1>Phonegap Test</h1>
</div>
<div data-role="content" id="div_auth">
<form name="fields" action="">
Name: <input type="text" id="login" name="login"/><br>
<button type="button" onclick="callNext();">Send</button>
</form>
</div>
</div>
<div data-role="content" id="div_functions">
<form name="functions" action="">
<button type="button">Client List</button> <br>
<button type="button">Price List</button>
</form>
</div>
</body>
</html>
因此,当加载 div_auth 内容时,它默认加载 data-theme="a" (我想这在 div_main 而不是 div_auth 中隐含,但无论如何)。但是,当我单击按钮时,即使我为 div_functions 指定了数据主题,按钮也会呈现为标准的“无 css”html 按钮。
在任何人开始怀疑之前,请注意,我需要通过 JS 函数调用 div 交换,因为这只是我开始开发的 Phonegap/Cordova 应用程序的简化,并且该调用模拟了它的实际工作方式。但是,我测试了上面的代码,它(错误)的行为是一样的
编辑:
为了让斯科特的回答更有意义,我尝试了一些东西:
<div data-role="content" id="div_auth" data-theme="b">
<form name="fields" action="">
Name: <input type="text" id="login" name="login"/><br>
<button data-theme="a" type="button" onclick="callNext();">Send</button>
</form>
</div>
如您所见,我将 data-theme="b" 显式添加到 div_auth 并将 data-theme="a" 添加到包装按钮。令我惊讶的是,它确实有效,其中 div_auth 采用蓝色主题,而按钮以黑色呈现。但是,在第二个 div (div_functions) 中使用相同的方法,即使使用相同的主题也会导致按钮没有附加 css 样式:
<button data-theme="a" type="button">Price List</button>
仍然呈现一个“陈旧的按钮”。