我因为以下问题而捣乱了几个小时:
<div>
不幸的是,只有最后一个对象元素可视化并加载到DOM。在之前的步骤中创建的所有其他div都被覆盖。
在这里找到一个jsFiddle,它演示了我的问题:http://jsfiddle.net/7oq053od/1/
你有什么想法,我错过了什么? 很高兴得到一些反馈:)
答案 0 :(得分:1)
附加多个div。你应该创建一个包含所有子div的主容器,并且在显示时,每个div元素都会被创建并且每次附加到主容器。 这是一个示例代码:
<div id="container"></div>
//now in javascript create child div elements and append to main container
<script>
for(var items in data)
{
var newChild = $(document.createElement('div'));
$(newChild).css({
//some css code
});
//now appending it to main container
$('#container').append(newChild);
}
</script>
答案 1 :(得分:1)
模板插件似乎将模板化值应用于同一元素。如果克隆元素,则脚本可以正常工作。
$.each(results.features, function (key, value) {
$("#homeView").clone().loadTemplate($("#template"), {
geoFenceName: value.attributes.title,
geoFenceDescription: value.attributes.description
}).appendTo('#fences');
});
请参阅更新的小提琴this
答案 2 :(得分:1)
从github网页上的Options部分,您可以看到第三个参数,append
属性设置为true
。
只需考虑将其添加到您的脚本中,如下所示:
$.each(results.features, function (key, value) {
$("#homeView").loadTemplate($("#template"), {
geoFenceName: value.attributes.title,
geoFenceDescription: value.attributes.description
}, {append: true});
});
这是一个有用的 JsFiddle。
答案 3 :(得分:1)
问题是loadTemplate
函数会覆盖div。您可以通过克隆模板容器来修复它,然后将其附加到'#homeWiew'。
我从你的jsfiddle创建了一个对我有用的分支: