我的 jQuery Mobile 页面不会加载$.get
绑定到pageinit
事件中的内容,但是当我点击刷新 (F5) 时会这样做,为什么会这样?
我的 HTML 页面igra.html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<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">
<!-- stili za custom temo, jquery, jquery mobile, phonegap-->
<link rel="stylesheet" href="themes/what.min.css" />
<link rel="stylesheet" href="jquerymobile.css" />
<script src="jquery191.js"></script>
<script src="jquerymobile.js"></script>
<script src="phonegap.js"></script>
<script src="main.js"></script>
<link rel="stylesheet" href="stil.css" />
</head>
<body>
<div data-role="page" id="igra">
<div data-theme="a" data-role="header">
<a href="index.html" data-role="button" data-theme="a" data-icon="coins" data- inline="true" class="vibra">347 coins</a>
<h3>WHAT?</h3>
<a href="index.html" data-icon="domov" data-theme="a" data-inline="true" data-transition="slide" data-direction="reverse">Home</a>
</div>
<div data-role="content" class="igracontent"> </div>
</div>
</body>
</html>
我main.js
的 jQuery Mobile 代码:
$( document ).delegate("#igra", "pageinit", function() {
var par = qs["battlefield"];
$.get('igra.php?battlefield='+par, function(data2) {
$('div.igracontent').append(data2).trigger('create');
});
});
//parse url parameter
var qs = (function(a) {
if (a == "") return {};
var b = {};
for (var i = 0; i < a.length; ++i)
{
var p=a[i].split('=');
if (p.length != 2) continue;
b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
}
return b;
})(window.location.search.substr(1).split('&'));
在igra.php
我进行 SQL 查询并检索一些我以 jQuery Mobile 样式格式化的数据并将其回显。
我知道 jQuery Mobile 不会head
在后续页面中加载到 DOM 中,因此main.js
也包含在index.html
我的应用程序登录页面的 head 中。所有到新页面的转换都是通过正常的 ajax 查询(我不阻止默认行为)。
那么会发生什么?当我导航到igra.html?battlefield=3
事件时pageinit
确实发生了,但是我$.get
从 php 页面加载的内容没有被插入!如果我按 F5(refresh),内容确实会加载到页面中。有人可以解释和帮助吗?:) 谢谢!