Mam następujący słuchacz skonfigurować dla „pagebeforechange” (bardzo podobny do własnego kodu dokumentacji jQuery Mobile) i link na stronie głównej, że dzwoni http://localhost/#product?id=255979jQuery Mobile „pagebeforechange” miano dwukrotnie
//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();
}
}
}
});
Kiedy otworzyć konsolę JavaScript i kliknij link widzę następujące:
showProduct being called.
showProduct being called.
ja nie mogę znaleźć nic na temat, dlaczego to nazwać coraz dwukrotnie. Widziałem inne błędy, w których vclicks są rejestrowane dwukrotnie z powodu kliknięcia krawędzi, ale to nie ma sensu, ponieważ polega na faktycznej zmianie strony.
Czy używasz układu wielostronicowego lub pojedynczej strony? http://jquerymobile.com/demos/1.0/docs/pages/index.html Powodem, dla którego pytam, jest powiązanie z $ (dokumentem) zamiast z układem stronicowania –
Układ wielu stron - metoda "showProduct()" ładuje informacje na drugą stronę, a następnie przechodzi. – Jack
Zastanawiam się, skoro wiążesz $ (dokument), że jest on wywoływany wiele razy, czy mógłbyś zamiast tego użyć strony ID i przetestować? –