我已經編碼到一個角落。jquery移動列表查看 - 檢查初始化完成
我需要在列表上調用listview("refresh")
,但它可能沒有在我調用刷新方法的位置初始化。
有沒有辦法檢查組件是否已經初始化?
這是錯誤我得到:
不能調用之前列表視圖的方法來初始化
我已經編碼到一個角落。jquery移動列表查看 - 檢查初始化完成
我需要在列表上調用listview("refresh")
,但它可能沒有在我調用刷新方法的位置初始化。
有沒有辦法檢查組件是否已經初始化?
這是錯誤我得到:
不能調用之前列表視圖的方法來初始化
當listview
控件初始化時,它給了ui-listview
類,所以我們可以測試這個類是否已經初始化:
//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');
}
這應該有助於緩解您遇到的錯誤。
此外,.hasClass('[class]')
函數返回true
/false
如果該元素具有[class]
:http://api.jquery.com/hasClass
賓果。好的答案 - 謝謝,只是希望他們不要改變班級名稱。 :) – Chin 2012-02-29 04:57:59
對我來說,要解決這個消息是添加data-role="listview"
我ul
元素。然後我可以在我的事件處理程序中使用方法.listview('refresh')
。
您可以簡單地創建一個全局變量
var is_mobile_init = false;
位於腳本的頂部。然後在包含jquery mobile後將其設置爲true。
然後刷新寫之前,
if (is_mobile_init)
$myUL.listview('refresh');
這樣,你不需要把所有的各種類的軌道,這是直觀的
一些示例代碼將是很好,HTTP:// jsfiddle.net – 2012-02-29 04:06:59
這就是模塊化開發Phill的問題,在jsfiddle中生成相同的場景非常困難。我在加載的模塊上調用一個方法,不知道列表視圖是否已被初始化。這將取決於用戶連接的速度。我已經通過使用標誌解決了它。我只是覺得可能有辦法調用listview組件並檢查它的狀態。 – Chin 2012-02-29 04:30:09