2012-02-29 9 views
13

Köşeye kod yazdım.JQuery mobil liste görünümü - ilklendirmenin tamamlandığını kontrol edin

Bir listede listview("refresh") numaralı telefonu aramam gerekiyor, ancak yenileme yöntemini çağıracağım noktada başlatılmamış olabilir.

Bileşenin başlatılıp başlatılmadığını kontrol etmenin bir yolu var mı?

Bu hata alıyorum:

önce liste görünümü üzerinde yöntemleri

+0

bazı örnek kod güzel http olurdu

if (is_mobile_init) $myUL.listview('refresh'); 

bu şekilde, tüm farklı sınıfların takip etmek gerekmez ve sezgisel: // jsfiddle.net –

+0

Bu modüler geliştirme Phill ile sorun, jsfiddle aynı senaryoyu üretmek çok zordur. Yüklenen bir modülde, bir liste görünümünün başlatılıp başlatılmadığını bilmeden bir yöntem arıyorum. Bu, kullanıcı bağlantısının hızına bağlı olacaktır. Bir bayrak kullanarak şu an için çözdüm. Listview bileşenini çağırmanın ve durumunu kontrol etmenin bir yolu olabileceğini düşündüm. – Chin

cevap

21

deneyin için çağrı yapamazsınız Sınıfı, bu sınıfın test edilip edilmediğini görmek için test edebiliriz:

//select the listview 
var $myUL = $('#my-ul-element'); 

//add a list-item to the listview 
$myUL.append('<li>I\'m New!</li>'); 

//check if the listview has the ui-listview class 
if ($myUL.hasClass('ui-listview')) { 

    //this listview has already been initialized, so refresh it 
    $myUL.listview('refresh'); 
} else { 

    //this listview has not yet been initialized, so it gets initialized 
    $myUL.listview();//or you can use .trigger('create'); 
} 

Bu, aldığınız hatayı gidermenize yardımcı olacaktır. Bu mesaja çözüm benim ul elemana data-role="listview" eklemek oldu Benim için http://api.jquery.com/hasClass

+0

Bingo. İyi cevap - teşekkürler, Sadece sınıf adını değiştirmeyeceklerini umuyoruz. :) – Chin

3

başlatmayla bir listview Widget başlatıldığında, bu ui-listview verdi

$list.listview(); 
$list.listview('refresh'); 
+0

Bu neden reddedildi? Yöntem iyi çalışıyor. – Brad

0

: eleman [class] varsa

Ayrıca .hasClass('[class]') fonksiyon true/false döndürür. Daha sonra olay işleyicimde .listview('refresh') yöntemini kullanabilirim.

-1

sadece global değişkeni oluşturabilirsiniz

var is_mobile_init = false; Komut dosyalarınızın üstünde

. jquery mobile ekledikten sonra bunu true olarak ayarlayın.

sonra ferahlatıcı yazma önce

İlgili konular