0

我的 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),内容确实会加载到页面中。有人可以解释和帮助吗?:) 谢谢!

4

0 回答 0