【发布时间】:2013-05-02 19:24:06
【问题描述】:
这个问题我已经有一段时间了,我在网上尝试了很多解决方案,但都没有奏效。
我需要的是在页面加载时将数据从 json 提供给 listview 并呈现它,但它只适用于索引,之后我需要重新加载每个页面以便我可以看到 listview。
这是我的 jquery 代码:
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
});
$(document).bind('pageinit',function() {
DrawPageContent();
});
function DrawPageContent() {
$.ajax({
dataType: "json",
url: "js/categorias.json",
success: function(msg){
console.log(msg.categorias[1].nombre);
var categos = '';
for(var i=0;i<msg.categorias.length;i++){
categos += '<li><a href="refrescos.html?id='+ 0 +'"><img src="'
+ msg.categorias[i].logo + '"><h2>'+msg.categorias[i].nombre
+ '</h2><p>' + msg.categorias[i].desc + '</p></a></li> ';
}
$("#categorias").html(categos);
$("#categorias").listview("refresh");
//$("#page").trigger("pagecreate");
}
});}
我也尝试过 $(document).ready() 和其他一些东西。
这是该部分的 HTML:
<div id="page" data-role="page">
<div data-role="header">
<h1>Categorias</h1>
<a href="#popupOpciones" data-rel="popup" data-position-to="window" data-role="button" data-inline="true" data-icon="gear" data-theme="b" data-transition="pop">Opciones</a>
</div>
<div data-role="content">
<ul id="categorias" data-role="listview" data-inset="true">
</ul>
任何想法如何解决这个问题?
【问题讨论】:
-
你在 pageinit 上加载数据,它只触发一次。
-
我的计划是确保 ajax 在页面完成之前不会开始加载。
-
你为什么不使用
pagecreate,或pagebeforeshow,或pageshow? -
我会试一试并报告,谢谢提示。
-
我已经尝试了所有 3 似乎都没有工作 =(
标签: json jquery listview jquery-mobile