2013-04-27 2 views
0

У меня возникают проблемы при вызове страницы с помощью jquery mobile. В этом примере я предполагаю, что индексная страница (index.html) вызовет страницу данных (data.html), которая будет содержать данные с моего сервера. В моем случае, когда я делаю страницу вызова из index.html, используя синтаксис:страница загрузки jquery mobile и получить данные

$.mobile.changePage("data.html"); 

А на странице data.html Я сделал это синтаксис:

$(document).on('pageinit', '#myDataPage', function(){  
    GetData(); 
}); 

function GetData(){ 
    //Ajax Function here 
} 

После того как я называю data.html по-видимому, данные не отображаются. Но если я сделаю это вручную, обновите страницу, на которой отобразятся данные, полученные с моего сервера. Что-то не так с моим кодом?

ответ

1

По умолчанию jQuery Mobile использует Ajax для выполнения переходов страниц. Это означает, что во время перехода jQuery Mobile будет только вводить содержимое элемента тела ответа (или, более конкретно, элемент data-role = "page", если он предоставлен), то есть ничего в голове страницы не будет использоваться (с исключая заголовок страницы, который выбирается специально).

Таким образом, любые скрипты и стили, указанные в заголовке страницы, не будут иметь никакого эффекта, если страница загружается через Ajax, но они будут выполняться, если страница запрашивается обычно через HTTP.

Если вы переместите свой script с тега head внутри div второй страницы (<div data-role="page" id="myDataPage">), он будет выполнен. Другой способ - создать JS-файл и загрузить JavaScript на загрузку первой страницы (соответствующий пример here).

Надеюсь, это поможет.

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