2012-03-15 20 views
5

Tôi nhận được một đoạn mã thẻ html neo từ máy chủ trên cuộc gọi ajax. Làm cách nào để "làm mới" để điện thoại di động jquery có thể nối thêm các lớp cần thiết vào các liên kết?Tôi làm cách nào để hiển thị lại các thẻ neo được tạo động trong jquery Mobile?

Ví dụ liên kết mà điện thoại di động jquery tạo có ui-link:

<a class="ui-link" href="http://www.google.com">http://www.google.com</a> 

Làm thế nào để đảm bảo rằng các phong cách chính xác được gắn trên một thẻ neo mới được tạo?

+0

Chạy một hàm như một phần của gọi lại 'thành công' cho cuộc gọi Ajax? –

+0

Bạn có thể đăng mã JS của mình không? Widget nào bạn đang cố gắng làm mới 'refresh'? – Jasper

Trả lời

1

Nếu bạn muốn làm mới một widget mà đã được khởi tạo sau đó bạn có thể làm mới từng loại của tiện ích sử dụng chức năng tương ứng của nó:

$('.ui-btn').button('refresh'); 

Thông báo tôi đã sử dụng lớp .ui-btn để chọn mông trên các phần tử, lớp này được thêm khi nút được khởi tạo, vì vậy bạn có thể chắc chắn rằng bạn đang làm mới một tiện ích nút đã được khởi tạo.

Documents: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-methods.html

Nếu bạn cần phải khởi tạo một widget mà vẫn chưa được khởi tạo, sau đó bạn chỉ cần bỏ qua 'refresh' hoặc sử dụng .trigger('create'): Thông báo

$('[data-role="button"], button, input[type="button"], input[type="submit"]').not('.ui-btn').button();//or .trigger('create'); 

ở đây tôi bỏ qua các widget đã khởi tạo bằng cách sử dụng .not('.ui-btn') để điều này sẽ chỉ khởi chạy các tiện ích chưa được khởi tạo. Nếu bạn cố gắng khởi tạo một widget đã được khởi tạo thì bạn sẽ gặp lỗi (tương tự nếu bạn cố gắng làm mới một widget chưa được khởi tạo).

Cập nhật

Nếu HTML của bạn đang được xuất ra bởi máy chủ sau đó bạn có thể khởi tạo các widget trước khi thêm chúng vào DOM:

$.ajax({ 
    ... 
    success : function (serverResponse) { 
     var $out = $(serverResponse); 
     //if there is a container with elements inside it, use `.find()`, 
     //if all the elements are siblings at the top level then use `.filter()` 
     $out.find('a').button(); 
     $('body').append($out); 
    } 
}); 

Bạn cũng có thể sử dụng .buttonMarkup() chức năng để cập nhật widget nút: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html

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