Jeśli chcesz odświeżyć widżet, który został już zainicjowany następnie można odświeżyć każdy typ widgetu używając go za odpowiednią funkcję:
$('.ui-btn').button('refresh');
Zawiadomienie użyłem klasy .ui-btn
wybrać tyłek na elementach ta klasa jest dodawana po zainicjowaniu przycisku, dzięki czemu możesz mieć pewność, że odświeżasz już zainicjowany widżet przycisku.
Docs: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-methods.html
Jeśli trzeba zainicjować widżet, który musi jeszcze zostać zainicjowany, a następnie po prostu pominąć 'refresh'
lub użyj .trigger('create')
:
$('[data-role="button"], button, input[type="button"], input[type="submit"]').not('.ui-btn').button();//or .trigger('create');
Wskazówki Tutaj Pomijam już zainicjowany widgety przy użyciu .not('.ui-btn')
, więc to tylko zainicjuje niezainicjalizowane widżety. Jeśli spróbujesz zainicjować widżet, który został już zainicjalizowany, pojawi się błąd (to samo, jeśli spróbujesz odświeżyć widżet, który nie został jeszcze zainicjowany).
Aktualizacja
Jeżeli HTML jest wysyłany przez serwer wtedy można zainicjować widżety przed dodaniem ich do 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);
}
});
Można również wykorzystać funkcję .buttonMarkup()
zaktualizować widgety przycisku: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html
Uruchomić funkcję jako część wywołania zwrotnego 'success' dla wywołania Ajax? –
Czy możesz przesłać swój kod JS? Jakie widżety konkretnie próbujesz "odświeżyć"? – Jasper