2014-12-04 5 views
0

На странице 1, когда Ajax загрузки на странице 2, мне нужно, чтобы получить [data-role=page] элемент страницы 2,Как получить загруженную страницу на странице?

но на pageinit (или pagecreate), то $.mobile.activePage еще страницы 1.

Как получить только что загруженная страница вместо текущей страницы на pageinit?

$(document).on('pageinit', function() { 
    console.log($.mobile.activePage); // page 1 
}); 

ответ

0

Если вы хотите получить его только один раз, а затем использовать pagecreate, потому что срабатывает один раз на странице, и пожары, прежде чем навигация началась.

$(document).on("pagecreate", function (e) { 
    if ($(e.target).hasClass("ui-dialog")) { 
    var dialog = $(e.target); 
    } 
}); 

Чтобы получить его каждый раз, когда вы переходите к нему, вы можете использовать othe pageContainer events. В случае, если вы хотите изменить страницу, на которую вы отказываетесь, используйте pagecobtainerbeforechange.

$(document).on("pagecintainerbeforechange", function (e, data) { 
    if (typeof data.toPage == "object" && typeof data.prevPage != "undefined" && data.toPage.hasClass("ui-dialog")) { 
    data.toPage.find(".foo").addClass(".bar"); 
    } 
}); 

Для других событий на случай, если вы просто хотите получить доступ к диалогу и манипулировать его разметкой.

$(document).on("pagecontainerbeforeshow pagecontainershow", function (e, data) { 
    if (data.toPage.hasClass("ui-dialog")) { 
    var dialog = data.toPage; 
    /* do something */ 
}); 
+0

Мне нужно что-то сделать на ** каждой странице с щелчком, а также на первой странице, то есть на всех страницах сайта. Некоторые страницы открываются в виде диалога, некоторые - как стандартная страница с data-transition = xx. Дело в том, чтобы применить [плагин выбора даты] (http://dev.jtsage.com/jQM-DateBox/). В идеале датабокс должен применяться только один раз на каждой странице, поэтому, когда _ от страницы 3 щелкните на страницу 4_, примените поле даты на стр. 4; _из страницы 4 открыть страницу 5 в качестве диалога_, применить дату и время на стр. 5; _close page 5 dialog_, ** не применять ** datebox на стр. 4. (cont ...) –

+0

(... cont) Я могу избежать повторной инициализации с помощью '$ (...). not ('. inited') .datebox (...). addClass ('inited') ', но просто хочу знать, есть ли способ избежать подобных событий jQuery для мобильных страниц. –

+0

Затем используйте pagecreate, когда он срабатывает один раз за страницу/диалог. @KaFaiLo – Omar

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