更改<select> Meteor.js </select>上的事件

时间:2013-06-13 06:35:45

标签: javascript jquery events drop-down-menu meteor

我知道Meteor支持事件,我已经在复选框上看到了它,但我只是希望有人能够澄清我们是否可以在选择下拉列表中连接meteor中的更改事件,如下所示

 Template.templateName.events({
     'change select': function(e,t){
        // do whatever.......
     }
 });

我正在尝试使用Meteor进行此操作,当我更改选择框中的值时,它似乎没有触发。但是,当我使用jQuery更改内容时,它可以正常工作。

4 个答案:

答案 0 :(得分:3)

您的代码应该可以使用,它对我来说很好。

虽然我认为事件只采用一个eventMap参数,而不是两个。 “t”论点是什么?

答案 1 :(得分:1)

你可以使用这样的事件来处理多个复选框,然后检查一些属性(通常是id)以查看单击了哪一个。或者,因为this返回我的客户行,我可以从上下文中获取我想要的值。

模板片段

 {{#each phonemeResults}}
    <tr>
      <td>
        <div class="checkbox">
          <label>
            <input type="checkbox" class="star">
          </label>
        </div>
      </td>
      <td>
          {{word}}
      </td>
      <td>
        <small>{{phoneme}}</small>
      </td>
    </tr>
  {{/each}}

处理程序

Template.phonemeList.events({
  'change [type=checkbox]': function(e,t){
    console.log("add " this.word + " to user's public starred list");
  },
});

答案 2 :(得分:0)

我有类似的问题。问题是我的模板中只包含<option>个元素,<select>中的<body>元素位于其外部。确保配置事件映射的模板实际上包含<select>元素。

答案 3 :(得分:0)

如果您想要在特定的选择框上触发更改:

Template.chatRooms.events({
'change #chatroomList' : function(event){
        console.log("Changed")
      }
})

如果您希望在模板中的任何选择框更改时触发它:

Template.chatRooms.events({
    'change select' : function(event){
            console.log("Changed")
          }
    })