我有这个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;但是我在同一个模板上有另外一个输入,所以我想在这个输入上触发按键。
答案 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