2017-09-28 2 views
0

Ce code de modèle Meteor tente d'ajouter une classe à l'élément sans les appels inutiles. event.currentTarget.addClass('active'); Impossible d'ajouter la classe? Qu'est-ce que je fais mal?Ajouter une classe à un élément dans un événement de modèle

// inside the template events 
'click #login-form-link': function (event) { 
    $('#login-form-link').addClass('active'); // extra call 
    event.currentTarget.addClass('active'); // cheap but did not work 
}, 
+0

Quelle est votre question? – Mikkel

+0

event.currentTarget.addClass n'est pas une fonction est l'erreur sur la console du navigateur. –

+1

C'est une méthode jQuery, donc c'est $ (event.currentTarget) .addClass ('active'); 'ou' event.currentTarget.classList.add ('actif'); ' – adeneo

Répondre

0

Vous devez convertir la cible d'événement dans un objet jQuery

'click #login-form-link'(event) => { 
    $(event.target).addClass('active'); 
}, 

Notez que this sera le contexte de données derrière l'élément que vous avez cliqué sur, pas un élément DOM que vous peut ajouter une classe à.

Vous ne pouvez pas vraiment vous débarrasser de l'appel supplémentaire car vous avez besoin d'obtenir une référence à un nœud DOM en quelque sorte, $(event.target) est aussi bon que tout.

0

Bien que cette question est déjà répondu, je ne peux que dire que cette tâche pourrait se faire sans utiliser jQuery:

'click #login-form-link'(event) => { 
    event.target.classList.add('active'); 
}, 

classList est une propriété qui prend en charge add(), remove() et toggle() méthodes, juste être Différence de support de navigateur: certains navigateurs ne supportent pas plusieurs arguments de ces méthodes, mais tous (à l'exception des anciens) ont un support basique.

MDN documentation.