Как работает свойство $.mobile.activePage?

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

$(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, я хочу записать 'Bingo!' в консоли.

Я полный новичок в jQM, и я не знаю, должно ли это быть правильным способом или нет.

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

Ответ 1

Вы можете получить идентификатор активной страницы с $.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", с которым вы можете быстро ссылаться.

Обновление

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