关于div内部子输入的Meteor事件处理程序

时间:2015-05-22 20:43:24

标签: jquery events meteor

我有这个html结构。

<div class="test">
 <input type="text" /> <!-- this input is generated autoamitcally so i cant set id or className -->
</div>

现在我想在输入中使用keypress事件,我的eventtype selector应该如何看待?

已尝试

Template.myTemplate.events({
 'keypress .test.input .test input':function(event,template){
   console.log("and work"); //this dosnt get printed on the console.
 }
})

我知道&#39;按键输入&#39;但是我在同一个模板上有另外一个输入,所以我想在这个输入上触发按键。

3 个答案:

答案 0 :(得分:2)

对于自动生成的输入,请在Templates.sometemplate.rendered中使用标准jquery事件。例如,每当我在答案框内按下SO键时,此代码将触发一个事件:

$('.wmd-container').find('textarea').on('keypress', function(){
  console.log('i r texted')
})

在您的情况下,wmd-container可以是任何父div

答案 1 :(得分:1)

如果在.test div中有其他输入(除了将自动生成的输入)并且它们都没有ID或CLASS,则无法知道哪个输入调度了该事件。您必须在每个输入字段上使用唯一的id,class或name参数。

另一方面,如果.test div中只有一个输入,那么您要查找的事件应为'keypress .test input' 例如,请参阅此MeteorPad:MeteorPad

答案 2 :(得分:0)

试试这个:

Template.myTemplate.events({
  'keypress .test input[type="text"]': function(event,template) {
    console.log("and work", event.target);
  }
});

了解CSS选择器:http://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048