2013-09-18 3 views
0

У меня есть три страницы в моем приложении: #main, #new и #existing.jQuery Mobile - Как изменить поведение страницы в зависимости от предыдущей страницы

Каждый раз, когда загружается #new, я хочу, чтобы он обнаружил, что он пришел из #menu или #existing. В зависимости от этой информации он не должен ничего делать или заполнять свою форму.

Как я могу достичь этого как с точки зрения правой команды для предыдущей страницы, так и с правильной обработкой DOM?

+0

является '# главной 'страницей (отдельный файл) или элементом/контейнером? – gvee

+0

Нужен код для игры. Создайте JSFiddle, пожалуйста! – gvee

+0

#main - это страница, определенная в HTML, все они. Я сразу же создам JSFiddle. – JZweige

ответ

2

Согласно вашим #, эти страницы должны быть элементами dom. Просто используйте переменную в javascript и проверьте это на каждом шагу.

  • Создать новую переменную как Lastpage
  • На каждый клик, я предпочитаю использовать данных-Foo как атрибут данных HTML5.
  • Изменить lastPage в зависимости от навигации.
  • И сделайте после этого то, что вы действительно хотите.

    var lastPage = ''; 
    
    /* This code from jQuery Mobile, link is below the code. */ 
    
    // Define a click binding for all anchors in the page 
    $("a").on("click", function(event){ 
        // Prevent the usual navigation behavior 
        event.preventDefault(); 
        // Alter the url according to the anchor's href attribute, and 
        // store the data-foo attribute information with the url 
    $.mobile.navigate(this.attr("href"), { 
        lastPage: this.attr("data-foo") // store data here 
    }); 
    // Hypothetical content alteration based on the url. E.g, make 
    // an AJAX request for JSON data and render a template into the page. 
        alterContent(this.attr("href")); 
    }); 
    

HTML Пример

<a href="foo.bar" data-foo="main">Main Page</a> 
<a href="foo.bar" data-foo="new">New Page</a> 
<a href="foo.bar" data-foo="existing">Existing Page</a> 

Вы можете сделать данные-anythingyouwant. Важны только данные, после чего вы можете использовать все. Это просто атрибут DOM HTML5.

Edit:

Я предлагаю вам проверить страницу навигации. После этого вы сможете лучше понять концепцию. Код Источник: http://view.jquerymobile.com/1.3.2/dist/demos/widgets/navigation/

+1

Итак, мне нужно определить страницы как переменные? Я не очень за тобой ... – JZweige

+0

Ваш ответ слишком расплывчатый. – Omar

+0

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

1

Воспользуйтесь JQuery-Mobile страниц событий, таких как pagebeforehide и pageshow.

Demo

магазин текущей страницы id Прежде чем перейти.

var prevPage; 

$(document).on('pagebeforehide', function() { 
    prevPage = $.mobile.activePage[0].id; 
}); 

Когда страница назначения активна, извлечь хранимую предыдущую страницу id.

$(document).on('pageshow', function() { 
    $(this).find('.destination').text('Previous Page: ' + prevPage); 
}); 
Смежные вопросы