2011-06-23 30 views
11

Tôi muốn làm điều gì đó mỗi lần tải trang. Đó là một cái gì đó mà sửa chữa cách trang web di động trông trên các thiết bị khác nhau vì vậy nó cần phải xảy ra trên tải AJAX quá.jQuery Mobile - Thực hiện điều gì đó khi tải trang

Hiện tại, tôi đã thử phương pháp truyền thống $(function(){ /*...*/ }); nhưng chỉ hoạt động trên lần tải đầu tiên và không tải AJAX tiếp theo.

Tôi đã tìm kiếm sự kiện phù hợp để liên kết nhưng tôi không gặp khó khăn.

Trả lời

26

Bạn có thể sử dụng JQuery để ràng buộc với nhau "trang" (div là thiết lập với thuộc tính data-role=page) và sử dụng các sự kiện pageshow (có một số người khác cũng như: pagebeforeshow, pagehide, pagebeforehide).

$(document).delegate('.ui-page', 'pageshow', function() { 
    //Your code for each page load here 
}); 

http://api.jquerymobile.com/pageshow/

Lưu ý: câu trả lời này được viết cho jQuery Mobile 1.0.1, xem liên kết tài liệu hướng dẫn trên để biết thêm thông tin.

+0

Mẫu đẹp cho chức năng này - http://jsfiddle.net/olli/4rQRb/ – RredCat

+1

các trang không được chấp nhận ở mức 1.4 và bị xóa trong 1.5. Lưu ý: Việc kích hoạt sự kiện này không được chấp nhận như của jQuery Mobile 1.4.0. Nó sẽ không còn được kích hoạt trong 1.5.0 nữa. Việc thay thế cho pageshow là sự kiện pagecontainershow của tiện ích con của trang pagecontainer. Trong jQuery Mobile 1.4.0, hai sự kiện giống hệt nhau ngoại trừ tên của chúng và thực tế là pagecontainershow được kích hoạt trên pagecontainer, trong khi pageshow được kích hoạt trên trang. – John

Các vấn đề liên quan