【发布时间】:2014-12-29 02:42:14
【问题描述】:
我有这个代表公司文章的模板。
<template name="articleDetail">
<section class="articles">
{{#with articleData}}
<article>
<div>
<div>
<div class="logo">{{logo}}</div>
<div class="name">{{name}}</div>
</div>
</div>
</article>
{{/with}}
</section>
这个模板从这个助手接收数据:
Template.articleDetail.articleData = function(){
return articleDB.findOne({_id:Session.get("clickedOnArticle")})
}
文章显示为弹出窗口。当用户点击一篇文章(来自文章列表)时,详细文章(上面的模板)会显示一个 display:block。
我为此使用了这个事件:
Template.articleOverview.events({
"click .article":function(event, template){
Session.set("clickedOnArticle", event.currentTarget.getAttribute("data-article-id"))
$(".adArticle").addClass("active")
}
})
问题是我必须在一篇文章上点击 2 次。
- 第一次单击将模板注入到 dom 中
- 第二次单击添加“活动”类。
我在这里做错了什么?
谢谢,
【问题讨论】:
-
我唯一能想到的是,当您尝试将类添加到 DOM 时,并没有注入该元素,因为它需要超过
50ms~来构建和 addClass已经被调用。如果你把它包裹在setTimeout(function(){ $('.adArticle').addClass('active');}, 1000);中,它会起作用吗?
标签: jquery templates meteor addclass