2013-03-17 4 views
4

J'utilise meteor pour mettre à jour un document dans la base de données. Cependant, le clavier ne semble pas fonctionner. voici le code.Le clavier de Meteor ne fonctionne pas

Template.leaderboard.events({ 
    'keydown button.inc': function(evt) { 
     if (evt.which === 39) { 
      Players.update(Session.get("character"), {$inc: {score: 20}}); 
     } 

     Players.update(Session.get("character"), {$inc: {score: 20}}); 
     //Players.update(Session.get("character"), {$set: {name: 'images/characters/ninja.png'}}); 
    }, 
    'keydown': function(evt) { 
     if (evt.which === 37) { 
      Players.update(Session.get("character"), {$inc: {score: -20}}); 
      //Players.update(Session.get("character"), {$set: {name: 'images/characters/ninjaleft.png'}}); 
     } 
     Players.update(Session.get("character"), {$inc: {score: -20}}); 
    } 
}); 

Pourquoi mon clavier ne fonctionne-t-il pas?

+0

Qu'est-ce qui ne fonctionne pas? L'événement ne se déclenche-t-il pas du tout? Avez-vous de la difficulté à écouter certains événements de bouton? S'il vous plaît soyez un peu plus précis. – lbergnehr

+0

Pourriez-vous jeter dans un console.log là pour voir si son tir? Avez-vous des erreurs dans votre console js si vous tapez quelque chose? & est votre ensemble de hachage de session? – Akshat

+0

@seldon L'événement keydown ne fonctionnera pas du tout. –

Répondre

9

J'ai eu du succès attacher des événements de clavier à textareas et entrées, comme ce qui suit:

Template.inputArea.events({ 
    'keydown textarea' : function(e){ 
    console.log(e.which); 
    } 
}); 

Je ne suis pas tout à fait aussi familier avec la fixation des événements de clavier à d'autres éléments DOM. Je sais pour window événements, j'ai dû utiliser jQuery pour attacher les entrées de clavier.

Template.foo.rendered = function(){ 
    $(window).on('keydown', function(e){ 
    console.log(e.which); 
    }); 
}; 

// and on newer versions 

Template.foo.onRendered(function() { 
    $(window).on('keydown', function(e){ 
     console.log(e.which); 
    }); 
}); 

Peut-être que vous pourriez essayer quelque chose comme ça ...

+0

A l'heure où j'écris ces lignes, le clavier se déclenche très bien sur n'importe quel type d'élément. Je ne pense pas que la solution de contournement de l'écouteur d'événement jQuery soit nécessaire. – kontur

Questions connexes