Nano Hash - криптовалюты, майнинг, программирование

jQuery Mobile - Как изменить поведение страницы в зависимости от предыдущей страницы

В моем приложении есть три страницы: #main, #new и #existing.

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

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


  • #main это страница (отдельный файл) или элемент/контейнер? 18.09.2013
  • Нужен код для игры. Создайте JSFiddle, пожалуйста! 18.09.2013
  • #main — это страница, определенная в HTML, все они. Я сразу же создам JSFiddle. 18.09.2013
  • jsfiddle.net/rysfM/7 Вот оно. Кнопка сохранения не работает из-за условия, которое я пытаюсь выполнить. Если вы удалите статус if, вы сможете сохранять и загружать пациентов. 18.09.2013
  • Ага! Так что это не страницы ;-) 18.09.2013
  • Есть много способов добиться этого, вы можете сделать это, например, $(document).on('pagehide', function () { alert($(this).attr('id')); }); 18.09.2013
  • Почему на странице? Я хочу, чтобы он вел себя по-разному каждый раз при загрузке, не должен ли я использовать pageinit? 18.09.2013
  • Это для определения идентификатора предыдущей страницы. Сохраните идентификатор в var и на pagebeforeshow делайте то, что хотите, на основе идентификатора в var. или вы можете использовать pagebeforechange и проверить data.fromPage и data.toPage 18.09.2013
  • вы нашли решение для этого? 25.09.2013

Ответы:


1

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

  • Создайте новую переменную, например lastPage.
  • При каждом щелчке я предпочитаю использовать data-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>

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

Изменить:

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

18.09.2013
  • Ваш ответ слишком расплывчатый. 18.09.2013
  • Теперь это имеет смысл. Предоставьте демонстрацию, если можете, это поможет понять ваше решение. 20.09.2013

  • 2

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

    Демо

    Сохраните id текущей страницы, прежде чем уйти.

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

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

    $(document).on('pageshow', function () {
      $(this).find('.destination').text('Previous Page: ' + prevPage);
    });
    
    18.09.2013
    Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..