Javascript Dynamicly将事件添加到Meteor模板
在我的Meteor.JS应用程序中,我想动态添加从数据库中获取的元素的点击事件。不幸的是,函数在单击后未被触发(但事件已添加到Template.algorithms.\uuu eventsMap属性)。我想知道我的方法是否正确,有什么可以纠正以触发该事件 梅因:咖啡:Javascript Dynamicly将事件添加到Meteor模板,javascript,meteor,coffeescript,pug,Javascript,Meteor,Coffeescript,Pug,在我的Meteor.JS应用程序中,我想动态添加从数据库中获取的元素的点击事件。不幸的是,函数在单击后未被触发(但事件已添加到Template.algorithms.\uuu eventsMap属性)。我想知道我的方法是否正确,有什么可以纠正以触发该事件 梅因:咖啡: Template.algorithms.onCreated -> Template.instance().subscribe('algorithm-descriptions', { onReady: () -&g
Template.algorithms.onCreated ->
Template.instance().subscribe('algorithm-descriptions', {
onReady: () ->
for alg in AlgorithmDescriptions.find().fetch()
Template.algorithms.events({
"click .#{alg.button}": () ->
$(".#{alg.divClass}").scrollintoview({duration: 'slow'})
})
})
jade.com:
.col-md-2
ul
each alg in algorithmDescriptions
li(class=alg.button)=alg.name
.col-md-10
each alg in algorithmDescriptions
div(class=alg.div)
h2=alg.name
实现不正确 解决方案: 在模板中循环“each”时,附加一个类(例如,
'clickHere'
),并向其提供文档的id
范例
template.html-(对不起!我从未使用过jade)
请将脚本转换为jade和coffee,这应该可以工作
{{#each alg}}
<div class="clickHere" id="{{id}}">
h2={{name}}
</div>
{{/each}}
Template.algorithms.events({
"click .clickHere" : function(){
var id=this._id;
$("#"+id).scrollintoview({duration: 'slow'})
}
});