0

我如何使用 Meteor + Blaze 执行以下操作和/或为什么这不起作用?

代码做/不做下面所说的

// client...

$(document).ready(function () {
  console.log("this logs...");
  $('a.external').each(function () {
    console.log("this doesn't log");
    $(this).attr('title', 'External Link');
  });
});
4

1 回答 1

2

在 Meteor 中,您需要小心地在绘制 DOM 后对其进行操作。上面的代码会在所有脚本下载完成后触发,但是 DOM 还没有被绘制。

幸运的是,这非常简单!

如果你的模板是这个

<template name="hello">
    <a href="https://servicelocale.com/" class="external">Link</a>
</template>

然后你可以使用渲染的回调:

Template.hello.rendered = function() {
    this.$('a.external').each(function () {
        $(this).attr('title', 'External Link');
    });
}

我也在渲染的回调中使用了this.$而不是。$这很有用,因为它只查看hello模板而不是全部。所以你可以<a class="external"在你的页面上,但在不同的模板中,它不会添加标题属性。

您也可以$在此处使用。

于 2014-06-30T20:26:37.360 回答