2011-10-28 24 views
6

Với jQuery Mobile tôi có thể tạo ra một trang sử dụng một chủ đề tùy chỉnhThay đổi mặc định dữ liệu chủ đề từ jQuery Mobile

<div data-role="page" data-theme="s" id="home">... 

Bây giờ công trình này, nhưng đòi hỏi mà tôi thêm dòng này trong mỗi trang và mặt ở khắp mọi của tôi thời gian tôi thêm một trang mới. Tôi đã thử thêm data-theme="s" vào thẻ body nhưng điều này không ảnh hưởng gì. Có cách nào để làm điều này khác sau đó thiết lập nó bằng tay mỗi trang?

Trả lời

8

Bạn sẽ phải làm điều đó theo chương trình, AFAIK.

cái gì đó dọc theo dòng:

$(document).bind("mobileinit", function() 
{ 
    ... 
    $.mobile.page.prototype.options.contentTheme = "z"; //your theme 
    ... 
}); 

Bây giờ, vì không có móc tập trung - bạn sẽ phải làm dòng tương tự cho tất cả các tùy chọn theme có:

$.mobile.page.prototype.options.headerTheme 
$.mobile.page.prototype.options.footerTheme 

và do đó trên.

Tôi không có một danh sách tất cả trong số họ, nhưng một cái nhìn nhanh qua jquery.mobile-1.0rc1.js tìm kiếm .prototype.options. tiết lộ sau đây:

$.mobile.page.prototype.options.backBtnTheme 
$.mobile.page.prototype.options.headerTheme 
$.mobile.page.prototype.options.footerTheme 
$.mobile.page.prototype.options.contentTheme 
$.mobile.listview.prototype.options.filterTheme 

vậy có vẻ như với tôi bạn có thể đi với những thứ này và khám phá nhiều hơn khi bạn đi. Lưu ý rằng không phải tất cả chúng đều được tạo ra như thế - một số được xây dựng động trong mã. Tìm kiếm chuỗi Theme để xem ý tôi là gì.

Cập nhật

$.mobile.page.prototype.options.theme cần được cập nhật cũng - dựa trên nhận xét Moak của bên dưới.

+1

OK, cảm ơn, tôi sẽ xem xét và báo cáo lại. Đây là một giải pháp khả thi nhưng có vẻ ngớ ngẩn đến mức không có phương pháp nào được thực hiện cho việc này. – Moak

+0

cùng với '$ .mobile.page.prototype.options.theme' này hoạt động – Moak

+1

Trong 1.4.0 (không chắc chắn các phiên bản trước đó), bạn cần thực hiện việc này sau khi bạn tải jquery.js và TRƯỚC KHI jquery.mobile * .js –

1

Làm việc sau đây cho tôi. Chỉ cần chắc chắn rằng nó được gọi là sau khi JQM được khởi tạo.

$.mobile.page.prototype.options.theme = "b"; 
Các vấn đề liên quan