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
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? –
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