【发布时间】:2020-05-22 01:52:21
【问题描述】:
我很难理解 Meteor 如何将事件绑定添加到模板。
我有一个带有多个锚点的模板,用于导航下拉菜单:
<template name="user_loggedin">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Select a profile..
<b class="caret"></b></a>
<ul class="dropdown-menu">List</ul>
</li>
<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="glyphicon glyphicon-cog"></i>
<b class="caret"></b></a>
<ul class="dropdown-menu"> </ul>
</li>
</template>
我尝试绑定一个点击事件来显示下拉菜单:
Template.user_loggedin.events({
"click a.dropdown-toggle": function(e,tml) {
$(e.target).siblings('.dropdown-menu').toggle()
}
})
但是,该事件似乎只绑定到 第一个锚元素,而不是所有与“a.dropdown-toggle”选择器匹配的元素。
包含从集合派生的动态元素的模板也会出现同样的问题。我只是假设 Meteor 模板事件方法的工作方式与 $('a.dropdown.menu').on(...
我怀疑这与 Meteor 在绑定事件之前没有渲染所有模板的 DOM 元素有关。我见过使用 Meteor.template.rendered 在渲染后绑定事件的解决方案,但考虑到 Meteor 在下一个版本中不推荐使用渲染方法,这似乎很混乱。
还有其他方法吗?
【问题讨论】:
标签: javascript meteor event-handling dom-events