2012-03-31 6 views
3

Я работаю с jquery mobile, и я пытаюсь передать переменные на одной странице.Как использовать плагин jqm.page.params.js?

<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 со стороны страницы, но причина, по которой она нужна внутри страницы, предназначена для работы кнопки «Назад». И тогда я подумал, что это может быть, я мог бы получить переменные из 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   

}); 

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

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

ответ

2

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

See the answer to this question.

Смежные вопросы