我的模板如下:
<template name="dashboard">
<div>
<div class="list-group">
<a href="#state" style="text-align:center;font-size:120%" class="register list-group-item" data-toggle="collapse">Register Your bills</a>
<div id="MainMenu">
<div id="state" class="collapse">
{{ #each Utilities}}
<a href="#{{.}}" class="list-group-item" data-toggle="collapse" data-parent="#MainMenu">{{.}}</a>
<div class="collapse" id={{.}}>
{{ #each Billers . }}
<a href="#{{st_id}}" class="list-group-item list-group-item-success" data-toggle="collapse">{{state}}<i class="fa fa-caret-down"></i></a>
<div class="collapse offset list-group-submenu" id={{st_id}}>
==> Adding event handler for this element <a href="#" class="list-group-item billername" name="billername" data-toggle="collapse">{{name}}</a>
</div>
{{ /each }}
</div>
{{ /each }}
</div>
</div>
</div>
</div>
</template>
在上面的HTML中,我添加了一个指向我正在添加事件处理程序的元素的指针。这个'a'类元素是分层列表的一部分,比层次结构的根低2级。也就是说,当点击两个更高级别的链接时,它会出现在页面上。
事件处理程序代码如下:
Template.dashboard.events({
"click .billername":function(event){
console.log(event.currentTarget.billername);
}
});
billername
是元素的name
属性。但是,console.log
会打印undefined
。我不明白为什么会发生这种情况..
更新
下面评论中提到的方法对我有用。但是上面的方法不起作用的原因是什么?这是Meteor和许多其他教程记录的方法。我计划在任何地方使用event.target.billername.value
,但event.target.billername
本身是undefined