【问题标题】:Can't use jQuery to target elements in Meteor无法使用 jQuery 来定位 Meteor 中的元素
【发布时间】:2016-09-15 18:59:58
【问题描述】:

我有一个 home-template.html 文件:

<template name="override-atPwdForm">
    <div id="test">Test 1</div
</template>

还有 home-template.js。

Template['override-atPwdForm'].onRendered = function(){
    $("#test").append("Test 2");
};

但是当我重新加载页面时,文本 2 不会添加到文本 1 中。 请帮帮我。

【问题讨论】:

    标签: jquery meteor


    【解决方案1】:

    你可以尝试如下:

    模板代码:

    <template name="override-atPwdForm">
        <div id="test">Test 1</div>
    </template>
    

    JS代码:

    Template['override-atPwdForm'].onRendered(function() {
         Meteor.defer(function(){
             $("#test").append("Test 2");
         });
    });
    

    这里我们使用的是Meteor.defer,它只不过是setTimeout of 0

    【讨论】:

    • 我不认为将函数分配给onRendered 是正确的方法,因为onRendered 将函数作为回调。所以应该是Template['override-atPwdForm'].onRendered(function(){})
    • @RamilMuratov - 你是绝对正确的。更新了答案。
    • 这个延迟真的有必要吗? onRendered 等价于 $(document).ready
    • @Sindis - 是的,这个延迟是必要的。它就像流星一样是通过模板解析和 DOM 元素创建完成的,但它们需要几毫秒才能完全成为容器文档的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多