Как мне использовать плагин jqm.page.params.js? - PullRequest
3 голосов
/ 31 марта 2012

Я работаю с jquery mobile и пытаюсь передать переменные на той же странице.

<a href="page2.html?var1=foo&var2=bar">link1</a>
<a href="page2.html?var1=something&var2=bbq">link2</a>

После нажатия на ссылку страница будет помещена в DOM.Я понимаю, что мне придется перезагрузить страницу, чтобы можно было применить новые переменные, но мне не удалось сделать это с:

$.mobile.changePage("page2.html", {reloadPage : true,});

Когда страница загружается, я использую следующее:

$(document).delegate('#page2','pageinit', function(){           

   $.mobile.changePage("page2.html", {reloadPage : true});          

});

Приведенный выше код будет просто перенаправлять страницу в цикл, что явно не то, что я хочу.Я пытался убрать changePage за пределы pageinit, но причина, по которой он нужен внутри pageinit, заключается в том, что кнопка назад работает.Тогда я подумал, что, возможно, я смогу получить переменные из URL, поэтому я попробовал следующее с использованием jqm.page.params.js :

$(document).delegate('#page2','pageinit', function(){           

   if ($.mobile.pageData && $.mobile.pageData.proj_id){
      console.log("Parameter var1=" + $.mobile.pageData.var1);//does not print at all.
   }

   console.log("Parameter obj =" + $.mobile.pageData); // prints NULL           

});

Iнашел в документации ссылку на плагин, которая, как предполагается, позволяет вам использовать параметры в URL, называемом jqm.page.params.js , но нет примеров того, как использовать этот плагин.*

Есть здесь кто-нибудь, кто знает, как использовать этот плагин?Или есть ли лучший способ передачи переменных, когда вы на одной странице ссылаетесь на одну и ту же страницу, но с разными переменными?

1 Ответ

2 голосов
/ 06 апреля 2012

Я думаю pageinit слишком рано, поэтому параметры не анализируются.Попробуйте pagebeforeshow для вашего слушателя.

См. Ответ на этот вопрос .

...