【发布时间】:2015-03-23 21:25:35
【问题描述】:
所以我有一个包含在 Bootstrap 弹出框中的按钮,其中多个元素附加了相同的弹出框。您可以查看我的MeteorPad here(单击弹出框的每个元素)。
每当您单击弹出框内的按钮时,它都会触发所有弹出框,因此在我的示例中,您将收到 3 个警报。如果我添加第四个元素,我会得到 4,等等。
这可能是由于弹出框必须使用 jQuery .on() 来处理事件,因为它是动态创建的。这意味着我必须在 Meteor 中使用 Template.name.rendered 而不是 Template.name.events。
Template.postItem.rendered = function() {
var data = Template.instance().data;
$(".newNumber").popover({
html: true,
title: 'Popover',
content: function() {
return $("#popover-content").html();
}
});
$(document).on('click','#mysubmit', function(e) {
e.preventDefault();
alert('Hey');
});
}
有没有办法将 jQuery .on() 绑定到 Meteor 中的特定元素,这样我就不会触发所有元素?如果我静态构建这个例子,一切都很好,所以我有点困惑。
【问题讨论】:
-
FYI 渲染函数在 Meteor 1.0.4.2 版本上被净化,改为使用
Template.myTemplate.onRendered(function () { });
标签: jquery twitter-bootstrap meteor