2012-03-15 28 views
5

Ajax çağrısında sunucudan bir bağlantı etiketi snippet html alıyorum. JQuery mobile'ın gerekli sınıfları bağlantılara ekleyebilmesi için nasıl "yenileyim"? ÖrneğinDinamik olarak oluşturulan bağlantı etiketlerini jquery Mobile'da nasıl yeniden oluştururum?

jQuery mobil üreten bir ui-bağlantı vardır bağlantı: Doğru stilleri bir yeni oluşturulan bağlantı etiketi üzerinde eklenir sağlamak nasıl

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

? İşte

+0

Ajax çağrısı için "başarı" geri aramasının bir parçası olarak bir işlev çalıştırın. –

+0

JS kodunuzu gönderebilir misiniz? Özellikle hangi yenilikleri "yenilemeye" çalışıyorsunuz? – Jasper

cevap

1

Zaten o zaman her tür yenileyebilirsiniz başlatıldı bir widget yenilemek istiyorsanız Ben popo seçmek için .ui-btn sınıfını kullanılan

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

Bildirimi: widget, ilişkili oldukları işlevini kullanarak Öğeler üzerinde, bu ilke, düğme başlatıldıktan sonra eklenir, böylece zaten başlatılmış bir düğme widget'ını yenilediğinizden emin olabilirsiniz.

Dokümanlar: Zaten başlatılmış widget ihmal burada

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

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

sen başlatılması henüz bir widget başlatmak için gerekiyorsa, o zaman sadece 'refresh' veya kullanım .trigger('create') ihmal .not('.ui-btn') kullanarak, bu yalnızca başlatılmamış widget'ları başlatacaktır. Önceden başlatılmış bir widget'ı başlatmaya çalışırsanız, bir hata alırsınız (henüz başlatılmamış bir parçacığı yenilemeye çalıştığınızda da aynıdır).

Güncelleme

HTML sonra DOM eklemeden önce widget'lar başlatabilir sunucu tarafından outputted ediliyorsa:

$.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); 
    } 
}); 

Ayrıca düğme widget güncellemek için .buttonMarkup() işlevini kullanabilirsiniz: http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html

İlgili konular