2

из моей темы над @ JQuery: https://forum.jquery.com/topic/multiple-pagebeforecreate-events-triggered-when-jqm-builds-the-page-for-nested-listviews-w-jsfiddleнескольких событий pagebeforecreate, вызванных вложенным ListViews ж/jsfiddle

Теперь это понятно, но немного неинтуитивное. Google не очень помог, и в основном указал на «use pageinit not doc.ready()». Заметка на странице вложенного списка просмотрела бы некоторое время. Является ли это просто мной или это неинтуитивно, что страница загружается до щелчка?

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

О чем я говорю? :) Обновлено Daedalus: http://jsfiddle.net/3Shyb/ Оригинал: http://jsfiddle.net/jhr007/mDVfP В jsfiddle сообщения отправляются в журнал консоли. Откройте и очистите консоль. Запустить.

Обратите внимание на два сообщения о «pagebeforecreate Man обрабатывать РОМ ..» и т.д .. 1, затем 2

При редактировании HTML и удалить вложенные

    ...
, а затем запустить. Вы получаете сообщение один раз.

Это происходит при каждой загрузке страницы с навигационным меню, имеющим подменю.


http://www.jquerymobile.com/demos/1.1.0/docs/lists/docs-lists.html

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

+0

в небольшой заметке я фиксированный ваши ошибки HTML синтаксиса [здесь] (http://jsfiddle.net/3Shyb/), а также улучшение читаемости скрипки. – Daedalus

+0

Daedalus ++ для этого – jhr

ответ

0

Решение я нашел использовать сейчас и в будущем привязок живого/делегата (устаревшее в JQ 1.7), как функциональность.

Поэтому добавьте атрибут id в div [date-role = page], затем используйте метод «on» для привязки к событиям на этих идентификаторах («# ​​pageid1, # ​​pageid2»), «СЕЙЧАС И В БУДУЩЕЕ» ...

$(document).on('pagebeforecreate', "#pageid1, #pageid2" , 
    function (event) { 
     console.log('pagebeforecreate ', event.target.id); 
    }      
); 
0

Эта часть приведенных вами документов, к сожалению, неверна. Виджет listview создает u-страницы при создании родительской страницы. Не когда щелкнуть элемент списка. Вот почему вы видите несколько событий с pagecreate. Если у вас было два вложенных списка, вы увидите 3 страницы для создания событий. Из кода, который я вставил ниже, вы можете видеть, что подстраница для вложенного списка похожа на обычную страницу JQM.

<div data-role="page" data-url="/_display/&amp;ui-page=0-0" data-theme="null" data-count-theme="c" tabindex="0" class="ui-page ui-body-null"> 

    <div data-role="header" data-theme="b" class="ui-header ui-bar-b" role="banner"> 
     <div class="ui-title">Step 1</div> 
    </div> 

    <div data-role="content" class="ui-content" role="main"> 
     <ul class="ui-listview"> 
      <li class="ui-li ui-li-static ui-body-c">Step 1</li> 
      <li class="ui-li ui-li-static ui-body-c">Step 2</li> 
      <li class="ui-li ui-li-static ui-body-c">Step 3</li> 
      <li class="ui-li ui-li-static ui-body-c">Step 4</li> 
      <li class="ui-li ui-li-static ui-body-c">Step 5</li> 
     </ul> 
    </div> 

</div> 
Смежные вопросы