2012-02-23 10 views

risposta

8

È possibile ottenere la pagina da cui l'utente è in arrivo all'interno dell'oggetto data:

$(document).bind("pagebeforechange", function (event , data) { 
    console.log(data.options.fromPage.attr('data-url')); 
});​ 

Nota che, dal momento che si sta associando al document elemento piuttosto che un singolo elemento data-role="page" che verrà attivato due volte per ogni cambio di pagina, una volta per il fromPage e una volta per il toPage. I dati passati al gestore eventi per ogni evento della pagina saranno gli stessi dei dati per l'altra pagina.

Ecco una demo: http://jsfiddle.net/Atfrf/2/

+0

Si accende due volte ma alla 2a volta non c'è nessuna pagina. Se vuoi la pagina corrente puoi farlo in qualsiasi momento: $ .mobile.activePage.attr ('data-url') –

0

Perché non si può fare $(this).parent('div[data-role|="page"]').attr('data-url')

+1

Attualmente il PO è vincolante per il documento del 'elemento, così' this' farà riferimento al documento del 'elemento. Se ti leghi a qualcosa come '[data-role =" page "]' allora potresti usare 'this', ma poiché questo evento si attiva su entrambe le pagine, avrai entrambe le pagine uguali a' this' nel loro evento gestori. – Jasper

2

Il metodo attr non è un lavoro in alcuni browser, quindi è meglio usare il metodo jqmData. jqmData può funzionare in qualsiasi spazio dei nomi.

$(document).bind("pagebeforechange", function (event , data) { console.log(data.toPage.jqmData('url')); });​