Tôi đã nghe sau thiết lập cho "pagebeforechange" (rất giống với mã riêng Tài liệu của jQuery Mobile) và một liên kết trên trang chủ được gọi http://localhost/#product?id=255979jQuery Mobile "pagebeforechange" được gọi là hai lần
//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();
}
}
}
});
Khi tôi mở ra bảng điều khiển JavaScript và nhấp vào liên kết tôi thấy như sau:
showProduct being called.
showProduct being called.
tôi dường như không thể tìm thấy bất cứ điều gì về việc tại sao nó sẽ được nhận được gọi là hai lần. Tôi đã thấy các lỗi khác, nơi vclicks được đăng ký hai lần do nhấp chuột cạnh, nhưng điều này không có ý nghĩa gì vì nó phụ thuộc vào thay đổi trang thực tế.
Bạn đang chạy bố cục nhiều trang hoặc một trang? http://jquerymobile.com/demos/1.0/docs/pages/index.html Lý do tôi hỏi là bạn đang ràng buộc với $ (tài liệu) thay vì trangId –
Bố cục nhiều trang - phương thức "showProduct()" tải thông tin lên trang thứ 2, sau đó chuyển tiếp. – Jack
Tôi tự hỏi vì bạn đang ràng buộc $ (tài liệu) nó được gọi nhiều lần, bạn có thể chỉ sử dụng pageId thay thế và kiểm tra không? –