我正在构建一个phonegap应用程序。 IIt适用于iOS和Android,但在Windows Phone 8中,应用程序不会第二次加载页面。我在第1页上有一个列表。当我点击每个列表项时,它会在第二页上打开它的详细信息。
第1页的代码如下 -
//Each list item belongs to class 'stores-list'
$(document).on("click", '.stores-list', function() {
if (storage.getDataForKey('storeDetails') != null) {
storage.clearData('storeDetails');
}
storage.setDataForKey('storeDetails', stores[$(this).index()]);
$.mobile.changePage('store-details.html', {
transition: 'slide',
// data: stores[$(this).index()],
});
});
第2页的代码如下 -
$(document).on("pagebeforecreate", '#store-details', function () {
var storeDetailsQuery = storage.getDataForKey('storeDetails');
displaystoredetailsdata(storeDetailsQuery);
});
function displaystoredetailsdata(data1) {
var htmlstoredetails = "";
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Store Name</div><div class="ui-block-b">';
htmlstoredetails += '' + data1.storeName + '</div></div>';
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Type</div><div class="ui-block-b">';
htmlstoredetails += '' + data1.storeType + '</div></div>';
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Mobile</div><div class="ui-block-b">';
htmlstoredetails += '<a href="tel:' + data1.mobile + '">' + data1.mobile + '</a></div></div>';
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Address</div><div class="ui-block-b">';
htmlstoredetails += '' + data1.address + ', ' + data1.city + ' - ' + data1.pin + '</div></div>';
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Week Off</div><div class="ui-block-b">';
htmlstoredetails += '' + data1.weekOff + '</div></div>';
htmlstoredetails += '<div class="ui-grid-a"><div class="ui-block-a">Timings</div><div class="ui-block-b">';
htmlstoredetails += '' + data1.timings + '</div></div>';
$('#page-store-details-display').html(htmlstoredetails);
}
我面临的问题是,当我点击列表项时,它会打开下一页并显示详细信息。但是当第二次,如果我点击任何列表项,它会重定向到其他页面甚至创建正确的动态html,但页面不会因为我无法获得的任何原因而显示。 (我也尝试过触发&#34; pageshow&#34;事件。它是第一次执行。但是当我第二次点击任何列表项时没有触发。)
请帮忙。提前谢谢。
答案 0 :(得分:0)
我找到了解决问题的方法。实际上localStorage什么时候被清除,它引发了一个意想不到的事件处理。因此,我只是更新了key的值,而不是清除存储空间。