Spec-Zone.ru › jQuery Mobile

Виджет pagecontainer

Виджет pagecontainerверсия добавлена: 1.4

Описание: Управляет коллекцией страниц.

Быстрый навигатор

Параметры

классы
значения по умолчанию
выключено
тема

Методы

изменить
получить активную страницу
загрузить

События

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

Плавная навигация между страницами

Примечание: Виджет pagecontainer разработан как синглтон, создаваемый фреймворком на элементе body. Это ограничение будет устранено в будущих версиях jQuery Mobile.

Центральной абстракцией jQuery Mobile является использование нескольких страниц внутри одного HTML-документа. Все дочерние элементы body — это элементы div, которые были улучшены до виджетов page. Это страницы jQuery Mobile.

Одновременно видна только одна страница. При навигации текущая видимая страница скрывается, а другая страница отображается. Переход с одной страницы на другую выполняется с помощью перехода. Это невозможно при навигации между HTML-документами через HTTP, так как браузер отбрасывает все состояния, связанные с исходной страницей при переходе на целевую страницу, что делает невозможным выполнение этой задачи с помощью плавного эффекта перехода, такого как плавное затемнение или сдвиг.

Документы с несколькими страницами

В самом простом виде HTML-документ, полученный браузером, имеет body, состоящий из нескольких элементов div, которые улучшены с помощью виджета page. Каждая такая страница имеет атрибут id, чтобы отличить ее от других страниц.

Страницы могут быть взаимосвязаны с помощью якорей. При нажатии пользователя на такой якорь создается новая запись в истории, а страница, на которую ссылается якорь, отображается с помощью плавного перехода с предыдущей страницы. Пример ниже иллюстрирует многостраничную настройку. Примечание: Если пример ниже анимирует с помощью перехода плавного затемнения вместо перехода сдвига, запрошенного в якоре, это потому, что ваш браузер не поддерживает 3D-трансформации CSS.

<!doctype html>
<html>
<head>
  <title>Multipage example</title>
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
  <div data-role="page" id="page1">
    <div data-role="header">
      <h1>Page 1</h1>
    </div>
    <div role="main" class="ui-content">
      <a href="#page2" data-transition="slide" class="ui-btn ui-corner-all ui-btn-inline">Go To Page 2</a>
    </div>
  </div>
  <div data-role="page" id="page2">
    <div data-role="header">
      <h1>Page 2</h1>
    </div>
    <div role="main" class="ui-content">
      <a href="#page1" data-rel="back" data-transition="slide" class="ui-btn ui-corner-all ui-btn-inline">Go Back To Page 1</a>
    </div>
  </div>
</body>
</html>

Навигация по страницам с помощью Ajax

jQuery Mobile позволяет заменить стандартную навигацию браузера навигацией на основе Ajax. Он переопределяет стандартное поведение обработки ссылок браузера. Он перехватывает нажатия на якоря, содержащие ссылки на другие документы, и при каждом таком нажатии проверяет, можно ли получить документ с помощью Ajax. Ссылка должна соответствовать следующим критериям, чтобы документ, на который она ссылается, мог быть получен с помощью Ajax:

  1. Глобальный параметр конфигурации $.mobile.linkBindingEnabled должен быть true.
  2. По умолчанию событие клика не должно быть предотвращено, и оно должно быть левым щелчком.
  3. Ссылка не должна иметь ни одного из следующих атрибутов:
    • data-rel="back"
    • data-rel="external
    • data-ajax="false"
    • Атрибут target не должен присутствовать
  4. Глобальный параметр конфигурации $.mobile.ajaxEnabled должен быть true.
  5. Ссылка должна быть на том же домене или на разрешенном месте для кросс-доменных запросов.

Если эти критерии выполнены, jQuery Mobile получает документ с помощью Ajax. Важно понимать, что, хотя документ извлекается полностью, отображается только первая страница jQuery Mobile. Заголовок и остальная часть тела отбрасываются. Таким образом, невозможно получить многостраничный документ с помощью Ajax, а также нельзя выполнить скрипты, расположенные в заголовке.

После получения Ajax jQuery Mobile отображает страницу с помощью перехода. Переход может быть указан в ссылке, которая открывает страницу, с помощью атрибута data-transition. Если переход не указан, используется $.mobile.defaultPageTransition, или, если входящая страница является диалоговым окном, используется $.mobile.defaultDialogTransition.

Примечание: Виджет диалогового окна устарел начиная с jQuery Mobile 1.4.0 и будет удален в 1.5.0.

Если браузер поддерживает API replaceState, адресная строка обновляется так, чтобы отображать URL документа, полученного с помощью Ajax. Последний шаг имеет следующие последствия для проектирования сайта/приложения:

  1. Поскольку пользователь может скопировать URL страницы, отличной от стартовой, приложение должно быть спроектировано так, чтобы оно могло начинаться с любой из своих страниц. Лучший способ добиться этого — включить jQuery Mobile и код вашего приложения в заголовок всех страниц сайта/приложения и обеспечить согласованность начального состояния во время события pagecreate.
  2. Если ваше приложение включает в себя виджеты, общие для нескольких страниц, например, глобальное меню навигации, содержащееся в всплывающем окне, то вы должны убедиться, что каждая страница содержит копию разметки всплывающего окна, чтобы первая загруженная страница определяла всплывающее окно и делала его доступным для последующих страниц, загружаемых в DOM с помощью Ajax.

Параметры

классы

Тип: Объект
Значение по умолчанию:
{}
Укажите дополнительные классы для добавления к элементам виджета. Любой из классов, указанных в разделе Тема, может быть использован в качестве ключей для переопределения их значения. Чтобы узнать больше об этом параметре, ознакомьтесь со статьей обучение о параметре classes.
Примеры кода:

Инициализируйте pagecontainer с заданным параметром classes, изменяя тему для класса ui-pagecontainer.

$( ".selector" ).pagecontainer({
  classes: {
    "ui-pagecontainer": "highlight"
  }
});

Получите или установите свойство параметра classes, после инициализации, здесь читая и изменяя тему для класса ui-pagecontainer:

// Getter
var themeClass = $( ".selector" ).pagecontainer( "option", "classes.ui-pagecontainer" );
 
// Setter
$( ".selector" ).pagecontainer( "option", "classes.ui-pagecontainer", "highlight" );

значения по умолчанию

Тип: Булево
Значение по умолчанию: false
Установка этого параметра в true указывает, что у других параметров виджетов есть значения по умолчанию, и заставляет код автоматического улучшения виджетов jQuery Mobile опустить шаг, на котором он извлекает значения параметров из атрибутов данных. Это может улучшить время запуска.

Этот параметр также доступен в качестве атрибута данных: data-defaults="true".

Примеры кода:

Инициализируйте pagecontainer с заданным параметром defaults:

$( ".selector" ).pagecontainer({
  defaults: true
});

Получить или установить параметр defaults, после инициализации:

// Getter
var defaults = $( ".selector" ).pagecontainer( "option", "defaults" );
 
// Setter
$( ".selector" ).pagecontainer( "option", "defaults", true );

выключено

Тип: Булево
Значение по умолчанию: false
Отключает pagecontainer, если установлено значение true.

Этот параметр также доступен в качестве атрибута данных: data-disabled="true".

Примеры кода:

Инициализируйте pagecontainer с заданным параметром disabled:

$( ".selector" ).pagecontainer({
  disabled: true
});

Получить или установить параметр disabled после инициализации:

// Getter
var disabled = $( ".selector" ).pagecontainer( "option", "disabled" );
 
// Setter
$( ".selector" ).pagecontainer( "option", "disabled", true );

тема

Тип: Строка
Значение по умолчанию: a
Устанавливает цветовую схему (палитру) для виджета pagecontainer. Принимает одиночную букву от a до z, которая сопоставляется с палитрами, включенными в вашу тему.

Возможные значения: буква палитры (a-z).

Этот параметр также доступен в качестве атрибута данных: data-theme="b".

Примеры кода:

Инициализируйте pagecontainer с заданным параметром theme:

$( ".selector" ).pagecontainer({
  theme: "b"
});

Получить или установить параметр theme после инициализации:

// Getter
var theme = $( ".selector" ).pagecontainer( "option", "theme" );
 
// Setter
$( ".selector" ).pagecontainer( "option", "theme", "b" );

Методы

change( к, параметры )Возвращает: jQuery (только плагин)

  • к
    Тип: Строка или jQuery
    URL, на который нужно перейти. Может быть задан как строка, так и объектом jQuery, содержащим DOM-элемент страницы.
  • параметры
    Тип: Объект
    • разрешитьПереходНаТуЖеСтраницу (по умолчанию: false)
      Тип: Булево
      По умолчанию, change() игнорирует запросы на переход на текущую активную страницу. Установка этого параметра в true разрешает выполнение запроса. Разработчики должны учитывать, что некоторые переходы страниц предполагают, что fromPage и toPage в запросе change() различны, поэтому они могут не анимироваться так, как ожидается. Разработчики несут ответственность за обеспечение правильного перехода или его отключение в данном конкретном случае.
    • изменитьХэш (по умолчанию: true)
      Тип: Булево
      Определяет, создаётся ли новая запись в истории браузера в рамках последовательности навигации. Возможные значения:
      true pagecontainer создаст запись в истории браузера при переходе на нужную страницу. Таким образом, пользователь сможет использовать кнопки "Назад" и "Вперёд" браузера для навигации между исходной и целевой страницами.
      false pagecontainer перейдёт на нужную страницу без создания новой записи в истории браузера. Нужная страница заменит текущую, и кнопки "Назад" и "Вперёд" браузера не могут использоваться для навигации между исходной и целевой страницами.
    • данные (по умолчанию: undefined)
      Тип: Объект или Строка
      Данные, которые нужно отправить с запросом к странице AJAX.
    • urlДанных (по умолчанию: undefined)
      Тип: Строка
      URL, который нужно использовать для обновления адреса браузера по завершении change(). Если не указан, используется значение атрибута data-url элемента страницы.
    • задержкаОтображенияСообщенияОЗагрузке (по умолчанию: 50)
      Тип: Число
      Количество миллисекунд, на которое нужно отложить отображение сообщения о загрузке. Если загрузка завершится в течение этого времени, сообщение о загрузке не отображается.
    • перезагрузитьСтраницу (по умолчанию: false)
      Тип: Булево

      Примечание: Этот параметр устарел с версии jQuery Mobile 1.4.0 и будет удален в версии 1.5.0. Используйте свойство reload вместо него.

      Нужно ли принудительно перезагружать страницу, даже если она уже находится в DOM. Используется только когда аргумент 'url' является URL.

      (версия устарела: 1.4.0)
    • перезагрузить (по умолчанию: false)
      Тип: Булево
      Нужно ли принудительно перезагружать страницу, даже если она уже находится в DOM. Используется только когда аргумент 'url' является URL.
    • обратный (по умолчанию: false)
      Тип: Булево
      Нужно ли применять переход в обратном порядке. Установив это значение в true, можно смоделировать возврат на предыдущую страницу, даже когда реальная последовательность навигации идёт вперёд.
    • роль (по умолчанию: undefined)
      Тип: Строка
      Значение data-role, которое нужно использовать при отображении страницы. По умолчанию это undefined, что означает, что используется значение атрибута @data-role, определённого на элементе.
    • отобразитьСообщениеОЗагрузке (по умолчанию: false)
      Тип: Булево
      Отображать ли сообщение, указывающее на загрузку страницы.
    • переход (по умолчанию: undefined)
      Тип: Строка
      Переход, который следует использовать для смены страницы. Если значение равно undefined, для страниц будет использоваться значение $.mobile.defaultPageTransition (в настоящее время "fade"), а для диалогов — $.mobile.defaultDialogTransition (в настоящее время "pop").

      Значение по умолчанию: undefined

    • тип (по умолчанию: "get")
      Тип: Строка
      Тип HTTP-запроса ("get", "post" и т.д.). Используется только если аргумент 'к' является URL.
Примеры кода:

Вызов метода change:

$( ".selector" ).pagecontainer( "change" );

Программный переход от одной страницы к другой.

$( ":mobile-pagecontainer" ).pagecontainer( "change", "confirm.html", { role: "dialog" } );

getActivePage()Возвращает: jQuery

Возвращает текущую активную страницу.
  • Этот метод не принимает никаких аргументов.
Примеры кода:

Вызов метода getActivePage:

$( ".selector" ).pagecontainer( "getActivePage" );

load( url, параметры )Возвращает: Promise

  • url
    Тип: Строка
    URL, откуда загрузить страницу. Может быть абсолютным или относительным (например, "about/us.html").
  • параметры
    Тип: Объект
    Хэш, содержащий параметры, которые влияют на поведение метода.
    • тип (по умолчанию: "get")
      Тип: Строка
      Тип HTTP-запроса ("get", "post" и т.д.).
    • данные (по умолчанию: undefined)
      Тип: Объект или Строка
      Данные, которые нужно отправить с запросом к странице AJAX.
    • перезагрузитьСтраницу (по умолчанию: false)
      Тип: Булево

      Примечание: Этот параметр устарел с версии jQuery Mobile 1.4.0 и будет удален в версии 1.5.0. Используйте свойство reload вместо него.

      Нужно ли принудительно перезагружать страницу, даже если она уже находится в DOM. Используется только когда аргумент 'url' является URL.

      (версия устарела: 1.4.0)
    • перезагрузить (по умолчанию: false)
      Тип: Булево
      Нужно ли принудительно перезагружать страницу, даже если она уже находится в DOM. Используется только когда аргумент 'url' является URL.
    • роль (по умолчанию: undefined)
      Тип: Строка
      Значение data-role, которое нужно использовать при отображении страницы. По умолчанию это undefined, что означает, что используется значение атрибута @data-role, определённого на элементе.
    • отобразитьСообщениеОЗагрузке (по умолчанию: true)
      Тип: Булево
      Отображать ли сообщение, указывающее на загрузку страницы.
    • задержкаОтображенияСообщенияОЗагрузке (по умолчанию: 50)
      Тип: Число
      Количество миллисекунд, на которое нужно отложить отображение сообщения о загрузке. Если загрузка завершится в течение этого времени, сообщение о загрузке не отображается.
Примеры кода:

Вызов метода load:

$( ".selector" ).pagecontainer( "load" );

Загрузка внешней страницы, улучшение её содержимого и вставка в DOM.

$( ":mobile-pagecontainer" ).pagecontainer( "load", "confirm.html", { role: "dialog" } );

События

beforechange( event, ui )Тип: pagecontainerbeforechange

Срабатывает во время цикла смены страницы до загрузки или перехода любой страницы.
  • event
    Тип: Event
  • ui
    Тип: Объект
    • toPage
      Тип: jQuery или Строка
      Этот параметр представляет страницу, которую вызывающий элемент хочет активировать. Это может быть либо объект jQuery-коллекции, содержащий элемент DOM страницы, либо абсолютный/относительный URL-адрес внутренней или внешней страницы. Значение точно соответствует первому аргументу вызова changePage(), который инициировал событие.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
    • options
      Тип: jQuery
      Настройки конфигурации, которые будут использоваться для текущего вызова change()
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом beforechange:

$( ".selector" ).pagecontainer({
  beforechange: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerbeforechange:

$( ".selector" ).on( "pagecontainerbeforechange", function( event, ui ) {} );

beforehide( event, ui )Тип: pagecontainerbeforehide

Срабатывает перед запуском фактической анимации перехода.
  • event
    Тип: Event
  • ui
    Тип: Объект
    • nextPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом beforehide:

$( ".selector" ).pagecontainer({
  beforehide: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerbeforehide:

$( ".selector" ).on( "pagecontainerbeforehide", function( event, ui ) {} );

beforeload( event, ui )Тип: pagecontainerbeforeload

Срабатывает перед выполнением запроса загрузки.

Обратные вызовы, привязанные к этому событию, могут вызывать preventDefault() на событии, чтобы указать, что они обрабатывают запрос загрузки. Обратные вызовы, которые делают это, ДОЛЖНЫ убедиться, что они вызывают resolve() или reject() на ссылке на объект deferred, содержащейся в объекте, переданном в обратный вызов через его параметр ui.

  • event
    Тип: Event
  • ui
    Тип: Объект
    • url
      Тип: Строка
      Абсолютный или относительный URL, переданный в load() вызывающим элементом.
    • absUrl
      Тип: Строка
      Абсолютная версия url. Если url был относительным, он разрешается относительно URL, используемого для загрузки текущей активной страницы.
    • dataUrl
      Тип: Строка
      Отфильтрованная версия absUrl, используемая для идентификации страницы и обновления расположения браузера при активации страницы.
    • toPage
      Тип: Строка
      Строка, содержащая загружаемый URL.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
    • deferred
      Тип: Deferred
      Deferred, который должен быть разрешён или отклонён по завершении загрузки содержимого. Обратные вызовы, вызывающие preventDefault() на событии, ДОЛЖНЫ вызывать resolve() или reject() на этом объекте, чтобы change() запросы возобновили обработку. Наблюдатели объекта deferred ожидают, что объект deferred будет разрешён так:
      $( document ).on( "pagecontainerbeforeload", function( event, data ) {
       
        // Let the framework know we're going to handle the load.
       
        event.preventDefault();
       
        // ... load the document then insert it into the DOM ...
        // at some point, either in this callback, or through
        // some other async means, call resolve, passing in
        // the following args, plus a jQuery collection object
        // containing the DOM element for the page.
       
        data.deferred.resolve( data.absUrl, data.options, page );
       
      });

      или отклонён так:

      $( document ).on( "pagecontainerbeforeload", function( event, data ) {
       
        // Let the framework know we're going to handle the load.
       
        event.preventDefault();
       
        // ... load the document then insert it into the DOM ...
        // at some point, if the load fails, either in this
        // callback, or through some other async means, call
        // reject like this:
       
        data.deferred.reject( data.absUrl, data.options );
       
      });
    • options
      Тип: Объект
      Этот объект содержит параметры, переданные в load().
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом beforeload:

$( ".selector" ).pagecontainer({
  beforeload: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerbeforeload:

$( ".selector" ).on( "pagecontainerbeforeload", function( event, ui ) {} );

beforeshow( event, ui )Тип: pagecontainerbeforeshow

Срабатывает перед запуском фактической анимации перехода.
  • event
    Тип: Event
  • ui
    Тип: Объект
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом beforeshow:

$( ".selector" ).pagecontainer({
  beforeshow: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerbeforeshow:

$( ".selector" ).on( "pagecontainerbeforeshow", function( event, ui ) {} );

beforetransition( event, ui )Тип: pagecontainerbeforetransition

Срабатывает перед началом перехода между двумя страницами.
  • event
    Тип: Event
  • ui
    Тип: Объект
    • absUrl
      Тип: Строка
      Абсолютная версия url. Если url был относительным, он разрешается относительно URL, используемого для загрузки текущей активной страницы.
    • options
      Тип: Объект
      Настройки конфигурации, которые будут использоваться для текущего change() вызова.
    • originalHref
      Тип: Строка
      Атрибут href ссылки, которая инициировала процесс смены страниц.
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом beforetransition:

$( ".selector" ).pagecontainer({
  beforetransition: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerbeforetransition:

$( ".selector" ).on( "pagecontainerbeforetransition", function( event, ui ) {} );

change( event, ui )Тип: pagecontainerchange

Это событие срабатывает после того, как запрос смены страницы завершил загрузку страницы в DOM и все анимации перехода страниц завершились.
  • event
    Тип: Event
  • ui
    Тип: Объект
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM исходной страницы.
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом change:

$( ".selector" ).pagecontainer({
  change: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerchange:

$( ".selector" ).on( "pagecontainerchange", function( event, ui ) {} );

changefailed( event, ui )Type: pagecontainerchangefailed

Вызывается, когда запрос change() не может загрузить страницу.
  • event
    Type: Event
  • ui
    Type: Object
    • toPage
      Type: jQuery or String
      Это свойство представляет страницу, которую вызывающий абонент хочет сделать активной. Это может быть либо объект коллекции jQuery, содержащий элемент DOM страницы, либо абсолютный/относительный URL-адрес внутренней или внешней страницы, в этом случае значение точно соответствует первому аргументу вызова change(), который вызвал событие.
    • options
      Type: Object
      Параметры конфигурации, которые будут использоваться для текущего вызова change().
    • prevPage
      Type: jQuery
      Объект коллекции jQuery, содержащий элемент DOM страницы «откуда».
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом changefailed:

$( ".selector" ).pagecontainer({
  changefailed: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerchangefailed:

$( ".selector" ).on( "pagecontainerchangefailed", function( event, ui ) {} );

create( event, ui )Type: pagecontainercreate

Вызывается при создании pagecontainer.
  • event
    Type: Event
  • ui
    Type: Object

Примечание: Объект ui пуст, но включен для согласованности с другими событиями.

Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом create:

$( ".selector" ).pagecontainer({
  create: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainercreate:

$( ".selector" ).on( "pagecontainercreate", function( event, ui ) {} );

hide( event, ui )Type: pagecontainerhide

Вызывается после завершения анимации перехода. Примечание: В отличие от устаревшего события pagehide, это событие вызывается не на «fromPage», а на элементе виджета pagecontainer.

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

Вы можете получить доступ к свойствам nextPage через второй аргумент привязанной функции обратного вызова. Например:

$( ":mobile-pagecontainer" ).on( "pagecontainerhide", function( event, ui ) {
  alert( "This page was just shown: " + ui.nextPage );
});

Чтобы эти обработчики вызывались во время начальной загрузки страницы, вы должны привязать их до выполнения jQuery Mobile. Это можно сделать в обработчике mobileinit, как описано на странице глобальной конфигурации.

  • event
    Type: Event
  • ui
    Type: Object
    • nextPage
      Type: jQuery
      Объект коллекции jQuery, содержащий элемент DOM страницы, на которую мы только что перешли.
    • toPage
      Type: jQuery
      Объект коллекции jQuery, содержащий целевой элемент DOM страницы.
    • prevPage
      Type: jQuery
      Объект коллекции jQuery, содержащий элемент DOM страницы «откуда».
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом hide:

$( ".selector" ).pagecontainer({
  hide: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerhide:

$( ".selector" ).on( "pagecontainerhide", function( event, ui ) {} );

load( event, ui )Type: pagecontainerload

Вызывается после успешной загрузки страницы и вставки в DOM.
  • event
    Type: Event
  • ui
    Type: Object
    • url
      Type: String
      Абсолютный или относительный URL-адрес, переданный в load() вызывающим абонентом.
    • absUrl
      Type: String
      Абсолютная версия URL-адреса. Если URL был относительным, он разрешается относительно URL-адреса, используемого для загрузки текущей активной страницы.
    • dataUrl
      Type: String
      Отфильтрованная версия absUrl, которая будет использоваться при идентификации страницы и обновлении местоположения браузера, когда страница становится активной.
    • options
      Type: Object
      Этот объект содержит параметры, переданные в load().
    • xhr
      Type: XMLHttpRequest
      Объект jQuery XMLHttpRequest, используемый при попытке загрузить страницу. Это то, что передается в качестве третьего аргумента в обратный вызов успеха фреймворка $.ajax().
    • textStatus
      Type: String
      В соответствии с документацией jQuery Core documentation, это будет строка, описывающая состояние. Это то, что передается в качестве второго аргумента в обратный вызов ошибки фреймворка $.ajax(). Это также может быть null.
    • toPage
      Type: jQuery
      Объект коллекции jQuery, содержащий целевой элемент DOM страницы.
    • prevPage
      Type: jQuery
      Объект коллекции jQuery, содержащий элемент DOM страницы «откуда» в отсоединенном состоянии.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом load:

$( ".selector" ).pagecontainer({
  load: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerload:

$( ".selector" ).on( "pagecontainerload", function( event, ui ) {} );

loadfailed( event, ui )Type: pagecontainerloadfailed

Вызывается, если запрос загрузки страницы завершился неудачей.

По умолчанию, после отправки этого события, фреймворк отобразит сообщение об ошибке страницы и вызовет reject() для отложенного объекта, содержащегося в параметре ui события. Обратные вызовы могут предотвратить выполнение этого поведения по умолчанию, вызвав preventDefault() для события.

  • event
    Type: Event
  • ui
    Type: Object
    • url
      Type: String
      Абсолютный или относительный URL-адрес, переданный в load() вызывающим абонентом.
    • absUrl
      Type: String
      Абсолютная версия URL-адреса. Если URL был относительным, он разрешается относительно URL-адреса, используемого для загрузки текущей активной страницы.
    • dataUrl
      Type: String
      Отфильтрованная версия absUrl, которая будет использоваться при идентификации страницы и обновлении местоположения браузера, когда страница становится активной.
    • toPage
      Type: String
      Строка, содержащая URL-адрес, который пытались загрузить.
    • prevPage
      Type: jQuery
      Объект коллекции jQuery, содержащий элемент DOM страницы «откуда».
    • deferred
      Type: Deferred
      Обратные вызовы, которые вызывают preventDefault() для события, ОБЯЗАНЫ вызвать resolve() или reject() для этого объекта, чтобы запросы change() возобновили обработку. Наблюдатели за отложенным объектом ожидают, что отложенный объект будет разрешен так:
      $( document ).on( "pageloadfailed", function( event, data ) {
       
        // Let the framework know we're going to handle things.
       
        event.preventDefault();
       
        // ... attempt to load some other page ...
        // at some point, either in this callback, or through
        // some other async means, call resolve, passing in
        // the following args, plus a jQuery collection object
        // containing the DOM element for the page.
       
        data.deferred.resolve( data.absUrl, data.options, page );
       
      });

      или отклонен так:

      $( document ).on( "pageloadfailed", function( event, data ) {
       
        // Let the framework know we're going to handle things.
       
        event.preventDefault();
       
        // ... attempt to load some other page ...
        // at some point, if the load fails, either in this
        // callback, or through some other async means, call
        // reject like this:
       
        data.deferred.reject( data.absUrl, data.options );
       
      });
    • options
      Type: Object
      Этот объект содержит параметры, переданные в load().
    • xhr
      Type: XMLHttpRequest
      Объект jQuery XMLHttpRequest, используемый при попытке загрузить страницу. Это то, что передается в качестве первого аргумента в обратный вызов ошибки фреймворка $.ajax().
    • textStatus
      Type: String
      В соответствии с документацией jQuery Core documentation, возможные значения для этого свойства, помимо null, это «timeout», «error», «abort» и «parsererror». Это то, что передается в качестве второго аргумента в обратный вызов ошибки фреймворка $.ajax().
    • errorThrown
      Type: String or Object
      В соответствии с документацией jQuery Core documentation, это свойство может быть объектом исключения, если таковое произошло, или если произошла ошибка HTTP, то оно будет установлено в текстовую часть состояния HTTP. В противном случае оно будет null. Это то, что передается в качестве третьего аргумента в обратный вызов ошибки фреймворка $.ajax().
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом loadfailed:

$( ".selector" ).pagecontainer({
  loadfailed: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerloadfailed:

$( ".selector" ).on( "pagecontainerloadfailed", function( event, ui ) {} );

remove( event, ui )Тип: pagecontainerremove

Вызывается непосредственно перед тем, как фреймворк попытается удалить внешнюю страницу из DOM.
  • event
    Тип: Событие
  • ui
    Тип: Объект
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
    • prevPage
      Тип: jQuery
      Страница, которая должна быть удалена
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом remove:

$( ".selector" ).pagecontainer({
  remove: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainerremove:

$( ".selector" ).on( "pagecontainerremove", function( event, ui ) {} );

show( event, ui )Тип: pagecontainershow

Вызывается после завершения анимации перехода. Примечание: В отличие от устаревшего события pageshow, это событие не срабатывает на "toPage", а на элементе виджета pagecontainer.

Вы можете получить доступ к свойствам prevPage через второй аргумент привязанной функции обратного вызова. Например:

$( ":mobile-pagecontainer" ).on( "pagecontainershow", function( event, ui ) {
  alert( "This page was just hidden: " + ui.prevPage );
});

Чтобы эти обработчики вызывались во время первоначальной загрузки страницы, вы должны привязать их до того, как jQuery Mobile выполнит свои действия. Это можно сделать в обработчике mobileinit, как описано на странице глобальной конфигурации.

  • event
    Тип: Событие
  • ui
    Тип: Объект
    • toPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM целевой страницы.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM страницы, с которой мы только что перешли. Обратите внимание, что эта коллекция пуста, когда во время запуска приложения происходит первый переход на страницу.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом show:

$( ".selector" ).pagecontainer({
  show: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainershow:

$( ".selector" ).on( "pagecontainershow", function( event, ui ) {} );

transition( event, ui )Тип: pagecontainertransition

Вызывается после завершения перехода между страницами.
  • event
    Тип: Событие
  • ui
    Тип: Объект
    • absUrl
      Тип: Строка
      Абсолютная версия URL целевой страницы. Если url был относительным, он разрешается относительно URL, используемого для загрузки текущей активной страницы.
    • options
      Тип: Объект
      Этот объект содержит параметры, переданные в load().
    • originalHref
      Тип: Строка
      Атрибут href ссылки, которая инициировала процесс перехода на страницу.
    • toPage
      Тип: jQuery
      Это свойство представляет страницу, на которую перешел вызывающий. Это объект jQuery-коллекции, содержащий элемент DOM страницы.
    • prevPage
      Тип: jQuery
      Объект jQuery-коллекции, содержащий элемент DOM страницы, с которой произошел переход.
Примеры кода:

Инициализируйте pagecontainer с указанным обратным вызовом transition:

$( ".selector" ).pagecontainer({
  transition: function( event, ui ) {}
});

Привяжите обработчик событий к событию pagecontainertransition:

$( ".selector" ).on( "pagecontainertransition", function( event, ui ) {} );

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquerymobile.com/pagecontainer

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API