Cordova& JQuery: значение отправлено на другую статическую HTML-страницу
Я делаю веб-приложение IOS с помощью Cordova
а также JQuery
, Я создаю index.html, который имеет представление списка в 3 строки. при щелчке по строке страница изменится на другой page.html. В соответствии с выбранной строкой JS будет запрашивать данные с сервера и обновлять page.html. Теперь мой вопрос: как лучше всего это реализовать? Я имею в виду, что это обычный стиль, чтобы сделать это, так как я новичок в интерфейсе. В настоящее время я добавляю якорь в index.html:
<li><a href="page.html">A Header Bars</a></li>
Однако я сталкиваюсь с проблемами:
- Я не знаю, как получить информацию о нажатой строке в page.html
В page.html, как я могу запустить запрос на получение данных? В page.html я пишу:
$(document).ready(function() { console.log("test"); document.write("page test"); })
Но это не называется.
Благодарю.
3 ответа
Если вы хотите получить значение с одной страницы на другую, у вас есть несколько вариантов (одни и те же правила применяются для одного HTML hQM с несколькими страницами и для проекта jQM, построенного из нескольких файлов HTML):
I. На второй странице используйте pagebeforeshow и извлекайте все необходимые данные через объект данных. Допустим, у вас есть 2 html-файла, первый html имеет идентификатор "page1", а второй - id "page2"), пример:
$('#page2').live('pagebeforeshow', function (e, data) {
alert(data.prevPage.find('div[data-role="content"]').attr('id'));
});
II. Второй вариант - создать общий объект, который будет использоваться в качестве хранилища данных:
var storeObject = {
someValue : '1',
anotherValue : '2'
}
Это самое простое решение, но оно будет работать только при активной загрузке страницы ajax.
III. Вы можете передавать значения с помощью changePage:
$.mobile.changePage('page2.html', { dataUrl : "page2.html?paremeter=123", data : { 'paremeter' : '123' }, reloadPage : true, changeHash : true });
и читать их так:
$('#page2').live('pagebeforeshow', function (e, data) {
var paremeter = $(this).data("url").split("?")[1];;
paremeter = paremeter.replace("paremeter=","");
alert(paremeter);
});
Больше информации
Если вы хотите узнать больше об этой теме, взгляните на эту статью. Вы найдете несколько решений с примерами.
/questions/841146/peredavat-parametryi-mezhdu-dvumya-stranitsami-v-dvuh-raznyih-fajlah-v-jquery-mobile/841154#841154 хорошо на это отвечает. Для cordova+wp8 вариант с LocalStorage прост в реализации.
Проверьте этот пример здесь, надеюсь, это поможет
http://wpcertification.blogspot.com/2012/05/using-jquery-mobile-in-phonegapcordova.html