如何在 meteor Js 中获取click事件的值 例如,我想要 {{name}} 这个值。这是我的代码在警告框中显示* undefined *。请验证并建议我。
client JS:
Template.client.events({
'click .clientrow':function(e,t){
console.log("You Select Client Row ");
e.preventDefault();
alert($(e.target).closest('tr').data('_id'));
}
});
template:
<template name="client">
<tbody>
{{#each clientList}}
<tr class="clientrow">
<td data-id="{{_id}}">{{cid}}</td>
<td>{{mrno}}</td>
<td>{{client}}</td>
<td>{{formatDate rdate}}</td>
<td>{{referredby}}</td>
<td>{{clinecian}}</td>
<td>{{serviece}}</td>
<td>{{episode}}</td>
<td>{{actions}}</td>
</tr>
{{/each}}
</tbody>
</template>
答案 0 :(得分:9)
有一种更简单,更清洁的方法。在事件处理程序this
内部引用Handlebars模板上下文,它实际上是您的clientList
对象。所以你可以这样做:
Template.client.events({
'click .clientrow':function(e,t){
console.log("You Select Client Row " + this.client);
alert(this.mrno + ' ' + this.client);
}
});
答案 1 :(得分:7)
您可以轻松访问点击的元素:
'click .something': function(e, t) {
$(e.target);
}
现在,如果您希望将数据存储在已单击的行中,则可以使用data
HTML参数轻松访问该数据
{{#each items}}
<tr data-name="{{name}}" data-id="{{_id}}">...</tr>
{{/each}}
然后,从行中提取它:
'click .something': function(e, t) {
alert($(e.target).closest('tr').data('name'));
}