javascript - Meteor onRendered - 访问 DOM 困难

标签 javascript jquery meteor

我在 Meteor 的 Template onRendered block 中访问 DOM 时遇到问题。这是模板 html 的简化版本:

<template name="templateName">
  {{#each thing}}
    <img src="{{filename}}">
  {{/each}}
</template>

这是客户端 JavaScript 代码:

Template.templateName.onRendered(function() {
  console.log('check');
  this.$('img').each( function() {
    console.log('hi');
  });
});

我已经验证代码正在运行,因为“检查”出现在浏览器控制台中,但尽管显示了多个图像,但没有打印“hi”。

如果有更好的替代方法来解决这个问题,这里的目标是使用 DOM 中的信息调整图像大小。

为了确认,jquery 包已添加到 Meteor 中。

预先感谢您提供的任何帮助!我已经被这个看似简单的问题难住了几个小时。

最佳答案

您不应在 onRendered 父模板中使用 jQuery each。相反,你可以这样做:

<template name="templateName">
    {{#each thing}}
        {{> imgTmpl}}
    {{/each}}
</template>

<template name="imgTmpl">
    <img src="{{filename}}">
</template>

js:

Template.templateName.onRendered(function() {
    console.log('check');
});

Template.imgTmpl.onRendered(function() {
    console.log('hi');
});

关于javascript - Meteor onRendered - 访问 DOM 困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486669/

相关文章:

javascript - 将隐藏字段值传递给 javascript (href)

javascript - 如何使用 ReSTLet 发送(编码)PNG 图像并使用 jQuery 接收(解码)它?

javascript - Meteor:在定义路线的情况下添加一个类

javascript - meteor :如何导出类并在服务器上的另一个文件中使用

javascript - AutoForm-访问模板内对象属性数组的值

javascript - 等待异步函数

javascript - 如何在 JavaScript 中监听 Ctrl-P 按键?

javascript - 是否可以更改点击元素?

jquery - 如何为元素设置动画同时更改其不透明度?

javascript - 返回元素的 html 以及 jquery 中的元素