2011-12-09 11 views
10

Sto cercando qualcosa come segue,

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

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

Essendo #page_spots un div con l'attributo data-role insieme a page. Nell'esempio sopra, quando la pagina attiva è #page_spots Voglio registrare 'Bingo!' nella console.

Sono un novizio completo di jQM e non so se questo dovrebbe essere il modo giusto oppure no.

Grazie in anticipo e scuse per il mio inglese.

risposta

26

È possibile ottenere l'ID della pagina attiva da $.mobile.activePage e confrontarlo con una stringa piuttosto che cercare di paragonare ad un oggetto 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!'); } 
}); 

Ecco una demo: http://jsfiddle.net/E6YuA/

$.mobile.activePage è bello perché è sempre un oggetto memorizzato nella cache dell'attuale elemento data-role="page" a cui è possibile fare rapidamente riferimento.

Aggiornamento

Stavo leggendo di nuovo questo e non c'è bisogno di utilizzare .attr() per trovare l'ID, è possibile un po 'più rapidamente accedendo l'attributo direttamente dal DOMElement: $.mobile.activePage[0].id

+0

Grazie Jasper! Non posso ancora accettare la tua risposta, ma lo farò entro 2 minuti. – novato

+0

Grazie anche per la tua modifica! – novato

Problemi correlati