Meteor提供为模板定义eventHandlers。我有一个用户可以输入的文本输入,但也可以粘贴等等。
Sofar我用过:
Template.myTemplate.events({
'keyup #inputfield': function() {
DO SOMETHING HERE
}
});
是否可以定义类似于jquery的“on”函数?
$('#inputfield').on('change keypress paste focus textInput input', function ()
{
DO SOMETHING HERE
});
无论有多少事件同时发生,这只会触发一次。
答案 0 :(得分:3)
您可以使用stopImmediatePropagation
来阻止其他犯罪者:
Template.myTemplate.events({
'keyup #inputfield': function(event) {
event.stopImmediatePropagation();
}
});
或者你可以使用jQuery加上rendered
命令来实现同样的目的:
Template.myTemplate.rendered(function() {
$(this.find('#inputField')).on('change keypress paste focus textInput input', function ()
{
DO SOMETHING HERE
});
});
答案 1 :(得分:1)
_.throttle
应该这样做:
var handler = _.throttle(function(event) {
...
}, 1, {leading: false});
Template.myTemplate.events({
'event event anotherEvent': handler,
});