javascript - Meteor - 在模板加载时将类添加到 DOM 元素

标签 javascript jquery templates dom meteor

我正在尝试向 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"); 
    }
}

关于javascript - Meteor - 在模板加载时将类添加到 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473937/

相关文章:

javascript - react + redux - 401 - 未经授权 - 请求 header 中缺少 header

jquery - 我无法在 android、ios 上滚动窗口

jquery - 在更改事件上设置当前输入文本字段的输入值

c++ - 编译器错误? g++ 允许可变大小的静态数组,除非函数是模板化的

c++ - c++中模板的部分特化

javascript - 让js闭包立即执行

javascript - enzyme /Jest : How to test if mocked function has been called

javascript - 如何像这个文件一样压缩/缩小 JavaScript

javascript - 通过选择类来解包?

c++ - 为什么 C++ 编译器可以将函数声明为 constexpr,而不能是 constexpr?