无法在 Phonegap Windows Phone 8 的申请中第二次加载动态 html 页面
Unable to load dynamic html page for the second time in Phonegap Application for Windows Phone 8
我正在构建一个 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,但由于我无法获取的任何原因,页面不会显示。 (我也尝试触发 "pageshow" 事件。它是第一次执行。但是当我第二次单击任何列表项时没有触发。)
请帮忙。提前致谢。
我找到了问题的解决方案。实际上 localStorage 当被清除时,它引发了一个意外的事件处理。所以我没有清除存储,而是简单地更新了键的值。
我正在构建一个 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,但由于我无法获取的任何原因,页面不会显示。 (我也尝试触发 "pageshow" 事件。它是第一次执行。但是当我第二次单击任何列表项时没有触发。)
请帮忙。提前致谢。
我找到了问题的解决方案。实际上 localStorage 当被清除时,它引发了一个意外的事件处理。所以我没有清除存储,而是简单地更新了键的值。