Je souhaite que l’élément html appelant dans vue.js le modifie via jQuery. Pour le moment, je donne à chaque élément le nom de la classe + l’indice et je l’appelle ensuite via jQuery, mais cela ressemble à un hack fou.
Ce que je veux faire:
new Vue({ el: "#app", data: { testFunction : function(element) { $(element).doSomethingWithIt(); //do something with the calling element } } });
C’est l’élément appelant:
Test
Que puis-je passer dans la fonction pour obtenir l’élément div ou existe-t-il un autre moyen d’y parvenir?
Vous pouvez obtenir l’élément de l’événement comme ceci:
new Vue({ el: "#app", methods: { testFunction : function(event) { $(event.target).doSomethingWithIt(); } } });
Et alors:
Test
Ou (si vous voulez passer un autre paramètre):
Test
[démo]
Vous faites le mauvais chemin.
new Vue({ el: "#app", data: { testFunction : function(element) { $(element).doSomethingWithIt(); //do something with the calling element } } });
data
est l’état ou le stockage des données pour votre application.
vous devez créer un object de methods
pour vos méthodes
new Vue({ el: "#app", data: { }, methods: { testFunction : function(element) { $(element).doSomethingWithIt(); //do something with the calling element } } });
Vous voulez que v-el
puisse exécuter jQuery dessus. Par exemple:
Test
puis:
// as noted by @vistajess // your function should be in the methods object // not the data object methods: { testFunction : function() { $(this.$els.myElement).doSomethingWithIt(); } }