我正在尝试创建一个 JQM 应用程序,并通过从数据库中获取大量数据来实现。当我单击 ajax/json 生成的日历列表中的链接时,我应该能够通过调用服务器并获取数据来获取该事件的信息。就像现在一样,我分两步执行此操作。
我的 ajax 生成的事件列表:
$.each(groupcalendar, function (i, val) {
output += '<li><a href="#" data-id="' + val.mid + '" id="gotoMatch"><h2>' + val.matchformname + '</h2><p><strong>' + val.matchday + '</strong></p><p>' + val.coursename + '</p><p class="ui-li-aside"><strong>' + val.matchtime + '</strong></p></a></li>';
});
当我单击其中一个链接时,我想转到一个名为 prematchdata.html 的页面并从该特定事件中获取数据。为此,我首先调用 click 并从 data-id 获取 eventid,如下所示:
$(document).on('click', '#gotoMatch', function () {
var matchid = $(this).attr("data-id");
$.get("http://mypage.com/json/getmatchinfo.php?matchid="+matchid, function(data) {
localStorage["matchinfo"] = JSON.stringify(data);
$.mobile.changePage( "prematchdata.html", { transition: "slide", changeHash: true} );
}, "json");
});
我将返回的数据保存为 localStorage,然后在我的 pageinit 中使用这些数据,如下所示:
$(document).on("pageinit", "#prematchdata", function() {
var matchinfo = {};
matchinfo = JSON.parse(localStorage["matchinfo"])
var content = '<h2>'+matchinfo["matchname"]+'</h2>';
$('.infoholder').html(content);
});
它有效,虽然对我来说似乎最后两个步骤应该在一个步骤中完成,但我不知道该怎么做?好像有点不对,获取数据,保存到本地再使用?这不能没有$(document).on('click', '#gotoMatch', function () {}); ?
希望得到一些帮助并提前感谢:-)