Meteor - 在模板加载时将类添加到 DOM 元素
Meteor - add class to DOM element on template load
>我正在尝试将一个类添加到作为我所有 DOM 树的父级的 DOM 元素中。我尝试了不同的方法:
//this one doesn't work at all. DOM is not loaded
Template.home.created = function() {
Meteor.startup(function() {
$("#wrapper").addClass('app');
});
}
//this one only works if you do a page load, not if you render the template through a link (using router)
Template.home.created = function() {
Meteor.startup(function() {
$(document).ready(function() {
$("#wrapper").addClass('app');
});
});
}
//also does not work if I click on a link
Template.home.created = function() {
$(document).ready(function() {
$("#wrapper").addClass('app');
});
}
//does not work at all (I really expected this one to work by clicking on a link (using router))
Template.home.created = function() {
$("#wrapper").addClass('app');
});
}
我想要做的再简单不过了:添加一个类,以便我可以根据每个模板设置包装器的样式。有关如何执行此操作的任何建议将不胜感激。
当模板的实例初始化但不等待 DOM 准备好进行操作时,将调用模板创建的方法。
使用模板渲染方法,该方法将在模板呈现 DOM 时调用(第一次加载一次,每次模板中的标记更改时)
这样的东西应该可以工作(尚未测试):
Template.home.rendered = function(){
var element = $("#wrapper");
if(!element.hasClass("app")){
element.addClass("app");
}
}
尝试使用 Template.home.rendered
而不是 Template.home.created
。 不要在其中使用Meteor.startup
或$(document).ready
。
http://docs.meteor.com/#template_rendered
创建模板对象时调用Template.home.created
,但此时尚未将任何内容呈现到 dom 节点中。
相关文章:
- 如何判断何时将dom节点添加到文档中
- 向动态生成的DOM添加Angular自定义指令
- 如果移除并重新添加DOM元素,则ng单击绑定丢失
- 使用 Knockout 动态添加 dom 元素
- jquery使用$.on来添加dom元素
- 如何在 HTML 结构中添加 DOM 模型
- 如何强制.prepend()和.append()添加DOM对象,而不是文本
- AngularJS添加DOM元素
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- 带有模板的Dojo小部件,在小部件加载时更改模板(添加DOM元素)
- 添加 DOM 元素,什么是正确的方法
- 如何在画布上添加DOM对象
- 如何在每次迭代中添加DOM对象
- jQuery show()不是一个函数-用于添加DOM元素
- 只能添加dom元素,但不能删除它们
- 在单击按钮时动态添加DOM元素
- 添加 DOM 元素时获取通知
- 如何在React中添加dom
- 如何在Div背景中添加DOM图像对象
- 如何在按钮中添加DOM附加的功能