我如何使用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');
});
});发布于 2014-07-01 04:26:37
在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"属性。
您也可以在这里使用$。
https://stackoverflow.com/questions/24498251
复制相似问题