我已经为此苦苦挣扎了一段时间,似乎找不到有效的解决方案。希望这里有人可以提供帮助。
我正在尝试为集合中的每个条目呈现一个 div,然后使用 jQuery 来定位每个 div,获取存储在与该 div 对应的条目中的信息,并根据数据的值更改其 CSS。
这是我的模板:
<template name="vis">
<div id="vis">
{{#each Actions}}
<div class="visEntry" id="entry{{ID}}"></div>
{{/each}}
</div>
</template>
我尝试使用 cursor.observe() 给我一个回调,只要条目被添加到集合中,但我不能使用 jQuery 来选择新呈现的元素。我可以通过控制台打印所选条目中的任何值,使用 jQuery 选择和修改非模板 div(在 HTML 文件中硬编码),但是当我选择我想要的元素时,它不起作用。
Template.vis.Actions = function(){
var actions = Actions.find()
actions.observe({
added: function(action){
var entryHeight = action.Duration
var entryOffset = ($("#vis").height() - entryHeight) / 2
var target = "#entry" + action.ID;
$(target).css({'background-color':'red'}) // Doesn't work
$("#testDiv").css({'background-color':'red'}) // Works fine
}
})
return actions
}
我检查了我的live页面的源代码,jQuery选择器中使用的ID是正确的。我有四个条目:entry1、entry2、entry3 和 entry4,但它们似乎对 jQuery 不可见。这让我发疯,所以如果有人知道我做错了什么,我很想听到一些反馈。