这是我的问题。我的索引中有几个硬编码的伪页面。一些填充了内容,一些空的填充仅通过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