Ho il seguente ascoltatore impostato per un link sulla home page "pagebeforechange" (molto simile al proprio codice della documentazione jQuery Mobile) e che chiama http://localhost/#product?id=255979jQuery Mobile "pagebeforechange" essere chiamato due volte
//Bind Listener for Product Details
$(document).bind("pagebeforechange", function(e, data) {
//Only Run If Site is Initialized
if(ajaxSite.options.initialized) {
if (typeof data.toPage === "string") {
var u = $.mobile.path.parseUrl(data.toPage),
pl = /^#product/;
if (u.hash.search(pl) !== -1) {
console.log("showProduct being called.");
ajaxSite.showProduct(u, data.options);
e.preventDefault();
}
}
}
});
Quando apro la console JavaScript e clicca sul link che sto vedendo il seguente:
showProduct being called.
showProduct being called.
io non riesco a trovare nulla sul perché sarebbe sempre chiamato due volte. Ho visto altri errori in cui vclicks viene registrato due volte a causa del clic marginale, ma questo non ha senso dal momento che si basa sul cambio di pagina effettivo.
Si sta eseguendo un layout di pagina singola o multipagina? http://jquerymobile.com/demos/1.0/docs/pages/index.html Il motivo per cui ti chiedo è che stai vincolando a $ (documento) invece del pageId –
Layout pagina multiplo: il metodo "showProduct()" carica le informazioni nella seconda pagina, quindi le transizioni. – Jack
Mi chiedo visto che stai vincolando il $ (documento) che viene chiamato più volte, potresti semplicemente usare il pageId e testare? –