2011-12-09 2 views
10

J'essaie quelque chose comme suit,

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

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

Être #page_spots un div avec l'attribut data-role ensemble à page. Dans l'exemple ci-dessus, lorsque la page active est #page_spots, je veux enregistrer 'Bingo!' dans la console. Je suis un débutant complet à jQM et je ne sais pas si cela devrait être le bon chemin ou non.

Merci d'avance et excuses pour mon anglais.

Répondre

26

Vous pouvez obtenir l'ID de page active de $.mobile.activePage et le comparer à une chaîne plutôt que de tenter de comparer à un objet 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!'); } 
}); 

Voici une démo: http://jsfiddle.net/E6YuA/

$.mobile.activePage est agréable de parce que c'est toujours un objet mis en cache de l'élément data-role="page" actuel que vous pouvez rapidement référencer.

Mise à jour

Je viens juste de lire encore et vous ne pas besoin d'utiliser .attr() pour trouver l'ID, vous pouvez un peu plus rapidement en accédant à l'attribut directement à partir du DOMElement: $.mobile.activePage[0].id

+0

Merci Jasper! Je ne peux pas encore accepter votre réponse mais je le ferai dans les 2 minutes. – novato

+0

Merci aussi pour votre édition! – novato

Questions connexes