這是我的問題。我的索引中有幾個硬編碼的僞頁面。一些填充了內容,一些空的填充僅通過ajax與用戶交互。這個ajax內容包含html列表。當他們加載時,他們沒有漂亮的jquery移動外觀,所以我必須調用.listview()方法,以便jqm框架在我的ajax回調中解析它。這就是我經常會收到這樣JS錯誤:jQuery Mobile正確初始化列表視圖的方法
遺漏的類型錯誤:無法讀取的不確定
財產「jQuery162027575719612650573」的數量是絕不相同...
我不知道如果我使用的正確方法在頁面加載ajax內容後解析一個listview。這個錯誤似乎在加載時有輕微的延遲時被觸發,並且完整的事件被觸發得太快,那時我的listview還沒有在DOM中,只是一個猜測。在ajax調用之後初始化listview的推薦方法是什麼?
這是因爲當它似乎凍結任何進一步的JS執行出現JS錯誤非常不幸......
所以這裏是我的空僞頁:
<div data-role="page" id="playlist" data-add-back-btn="true">
<div data-role="header">
<h1><g:message code="pd.playlist" /></h1>
</div>
<div data-role="content"></div>
</div>
有權根據它有一個腳本標籤與綁定上pageshow Ajax調用激活列表視圖
<script type="text/javascript">
$('#playlist').bind('pageshow', function() {
$.ajax({
url: "updatePlaylistTemplate.gsp",
error:function(x,e){handleAjaxError(x,e);},
beforeSend:function(){$.mobile.showPageLoadingMsg();},
complete:function(){
$.mobile.hidePageLoadingMsg();
$('[data-role="listview"]').listview(); //re-active all listview
},
success:function(data, textStatus, jqXHR){
$('#playlist').find('[data-role="content"]').html(data);
}
});
});
</script>
的updatePlaylistTemplate返回這個(摘錄):
<ul data-role="listview" data-split-theme="d">
<li data-icon="delete">
<a href="javascript:void(0);" onclick="loadGet('urlToRemoveProdiver',$('#playlist'),doOnCallBack);">Provider: Bell</a>
</li>
<li data-icon="delete">
<a href="javascript:void(0);" onclick="loadGet('urlToRemoveChannel',$('#playlist'),doOnCallBack);">Rock - Classic Rock</a>
</li>
<li data-icon="refresh" data-theme="e"><a href="javascript:void(0);" onclick="loadGet('urlToReloadPlaylist',$('#playlist'),doOnCallBack)">Refresh list</a></li>
<li data-role="list-divider">Next song</li>
<li>
<a href="urlToViewSongInfo">
<img src="images/song.gif" />
<h3>Albert Flasher</h3>
<p>The Guess Who</p>
<p class="ui-li-aside">Next</p>
</a>
</li>
<li data-role="list-divider">Now playing</li>
<li>
<a href="urlToviewSongInfo">
<img src="images/song.gif" />
<h3>Crime of the Century</h3>
<p>Supertramp</p>
<p class="ui-li-aside">14h49</p>
</a>
</li>
<li data-role="list-divider">Previous songs</li>
<li>
<a href="urlToViewSongInfo">
<img src="images/song.gif"" />
<h3>Desperado</h3>
<p>Alice Cooper</p>
<p class="ui-li-aside">14h45</p>
</a>
</li>
[...]
</ul>
是,似乎當我打電話與一個特定ID創建事件'代碼$(「#播放列表」的觸發方式來解決這個問題)。觸發( 「創建」 ); '謝謝你的建議。我一直在尋找更靈活的東西,但目前這一切都會做。我試圖對我的選擇更一般,但我嘗試過的所有東西都不起作用。它必須在一個特定的ID ... –
感謝的人,也幫助。 – user1692333