【发布时间】:2013-03-02 20:33:38
【问题描述】:
我正在使用 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);
});
},
【问题讨论】:
标签: javascript jquery object methods