我想使用jQuery加载在我的页面上加载外部数据,然后让jQuery Mobile再次运行它以使用触发器应用主题等。数据加载正常,但没有正确重新调整。我只是举了一个小例子来证明这一点,因为我的整个项目太大了。
我有a.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<script>
function replaceData1() {
$("#a-page").load("b.html");
$("#a-page").trigger('create');
}
</script>
</head>
<body>
<div data-role="page" id="a-page">
<div data-role="header" data-theme="a">Header A</div><!-- /header -->
<div data-role="content" id="a-content">
Content A
<button onClick="replaceData1()">goto B</button>
</div><!-- /content -->
<div data-role="footer">Footer A</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>
我有b.html:
<div data-role="header" data-theme="d">Header B</div><!-- /header -->
<div data-role="content" id="b-content">Content B</div><!-- /content -->
<div data-role="footer">Footer B</div><!-- /footer -->
b.html不是一个完整的html文件,只是内容。我不确定这是否会导致这个问题。
然而,当我加载a.html并单击按钮时,b.html中的内容已正确加载但未正确加载主题。即使我稍后执行触发器('create'),它也不起作用。我做错了什么?有人可以重写一下,以便按照我的预期方式工作吗?
答案 0 :(得分:0)
试试这个
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<div data-role="page" id="a-page">
<div data-role="header" data-theme="a">Header A</div><!-- /header -->
<div data-role="content" id="a-content">Content A <button onClick="$.mobile.changePage('#b-page');">goto B</button></div><!-- /content -->
<div data-role="footer">Footer A</div><!-- /footer -->
</div><!-- /page -->
<div data-role="page" id="b-page">
<div data-role="header" data-theme="d">Header B</div><!-- /header -->
<div data-role="content" id="b-content">Content B <button onClick="$.mobile.changePage('#a-page');">goto A</button></div><!-- /content -->
<div data-role="footer">Footer B</div><!-- /footer -->
</div><!-- /page -->
</body>
</html>