我有以下監聽器設置爲「pagebeforechange」(非常類似於jQuery Mobile的文檔自己的代碼),並在主頁上的鏈接,呼籲http://localhost/#product?id=255979jQuery Mobile的「pagebeforechange」被稱爲兩次
//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();
}
}
}
});
當我打開JavaScript控制檯,然後單擊我看到下面的鏈接:
showProduct being called.
showProduct being called.
我似乎無法找到它爲什麼會得到兩次叫什麼。我看到了其他的錯誤,其中由於邊緣點擊而vclicks被註冊了兩次,但這沒有任何意義,因爲它依賴於實際的頁面更改。
您是否正在運行多頁或單頁佈局? http://jquerymobile.com/demos/1.0/docs/pages/index。我想問的原因是你綁定到$(document)而不是pageId – 2012-01-06 17:52:46
多頁面佈局 - 「showProduct()」方法將信息加載到第二頁上,然後轉換。 – Jack 2012-01-06 18:02:45
我想知道,因爲你綁定$(文檔)它被多次調用,你可以使用pageId來代替並測試嗎? – 2012-01-06 18:07:37