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>

Однако я сталкиваюсь с проблемами:

  1. Я не знаю, как получить информацию о нажатой строке в page.html
  2. В 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

Другие вопросы по тегам