【发布时间】:2014-12-08 17:31:49
【问题描述】:
我正在尝试在 JQuery UI 中使用 Buttonset 小部件。我已经加载了包,并且我的模板可以很好地呈现单选按钮。我有一个“渲染”函数来调用 JQ UI 例程来设置按钮集:
Template.teamList.rendered = function () {
$("#buttonsetID").buttonset();
}
但是看起来渲染的函数在模板被渲染之前被调用了!我在函数中粘贴了一个console.log,它会在屏幕上出现任何内容之前打印到控制台。所以没有设置任何单选按钮,因此 .buttonset() 调用什么也不做。如果我在呈现页面后在控制台中进行该调用,JQuery UI 会做正确的事情并出现我的按钮集。
.rendered 函数不是应该在一切设置好后调用吗?我做错了吗?
谢谢!
编辑:
例如,在排行榜示例中可以看到同样的情况。
如果添加:
Template.leaderboard.rendered = function() {
alert($('.player').length);
}
当页面显示时,它将显示 0。如果您需要添加一些 JQuery 事件,或者在本例中为 JQuery UI 元素,这使得访问 DOM 项目变得困难。
【问题讨论】:
-
你的模板是什么样子的?
-
实际上我可以使用任何模板复制它,包括 Todo 和排行榜示例应用程序。在呈现的函数中,尝试访问任何 DOM 元素都不会返回任何内容,就好像它不在页面中一样。
标签: meteor