我正在使用 jQuery mobile 构建一个 phonegap 项目。
我有一个正在迭代的 javascript 对象。
目前的问题是这样的:
下面是我的模型对象中的一个方法。它是自递归的,一旦被调用,每次用户单击对象上一层生成的列表项时,它都会通过自身递归到下一层。
我要解决的问题是将迭代段 b 作为对象传递给方法本身。由于某种原因,它作为一个名为 [Object] 的字符串返回,而不是对象本身。
这个函数在显示第一级时确实有效,但是我为每个孩子创建的“firstString”字符串似乎正在将我的对象变成一个名为对象的字符串。我删除了引号,将对象放在大括号中,但无济于事。
有人知道为什么会发生这种情况吗,我显然遗漏了一些重要的关于将对象传递给其调用以字符串形式生成的方法......
我的代码在下面,导致问题的行是firstString+="model.recurseAppTree('"+b+"');";
recurseAppTree: function(AppTree)
{
$.each(AppTree, function(a,b)
{
var firstString='<li data-role="list-divider" role="heading" data-theme="b">'+b.DisplayValue+'</li>';
if(b.Children != null)
{
$.each(b.Children, function(c,d)
{
firstString+="<li data-theme='c'><a data-transition='slide' id='id-"+d.IdValue+"' href='javascript:void(0);'>"+d.DisplayValue+"</a></li>";
firstString+="<script>";
firstString+="$('#id-"+d.IdValue+"').click(function(){";
firstString+="model.recurseAppTree('"+b+"');";
firstString+="});";
firstString+="</script>";
});
}
$("#selectview").html(firstString);
$("#selectview").listview('refresh', true);
});
},