Как именно работает свойство $ .mobile.activePage? - PullRequest
10 голосов
/ 09 декабря 2011

Я пытаюсь что-то следующим образом,

$(document).bind ('pageshow', function (e, data) {
   console.log ($('#page_spots'));
   console.log ($.mobile.activePage);

   if ($.mobile.activePage == $('#page_spots')) { console.log ('Bingo!'); }
});

Быть #page_spots div с атрибутом data-role, установленным в page.В приведенном выше примере, когда активная страница #page_spots, я хочу войти в «Бинго!»в консоли.

Я новичок в jQM, и я не знаю, правильно ли это будет.

Заранее благодарю и извиняюсь за мой английский.

1 Ответ

26 голосов
/ 09 декабря 2011

Вы можете получить идентификатор активной страницы из $.mobile.activePage и сравнить его со строкой, а не пытаться сравнить с объектом jQuery:

$(document).bind ('pageshow', function (e, data) {
   console.log ($('#page_spots'));
   console.log ($.mobile.activePage);

   if ($.mobile.activePage.attr('id') == 'page_spots') { console.log ('Bingo!'); }
});

Вот демонстрационная версия: http://jsfiddle.net/E6YuA/

$.mobile.activePage приятно иметь, потому что это всегда кэшированный объект текущего data-role="page" элемента, на который можно быстро ссылаться.

Обновление

Iтолько что прочитал это снова, и вам не нужно использовать .attr(), чтобы найти идентификатор, вы можете немного быстрее, используя атрибут непосредственно из DOMElement: $.mobile.activePage[0].id

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