如何在流星js中获得点击事件的价值?

时间:2014-03-19 09:35:39

标签: javascript meteor

如何在 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>

2 个答案:

答案 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'));
}