web-dev-qa-db-fra.com

Clics de bouton dans Jade

J'ai du mal à obtenir un bouton pour exécuter une fonction javascript quand on clique dessus, voici mon fichier jade

extends layout
block content
  - var something = function() {
  -   console.log('something')
  - }

  button(onclick='#{something()}') Click

Où est-ce que je me trompe avec ça?

14
Philip O'Brien

Avec cette ligne:
button(onclick='#{something()}') Click

vous dites à Jade qu'il doit coller le contenu de la fonction dans la valeur de l'attribut onclick.

Il suffit de référencer le nom de la fonction:

button(onclick='something()') Click

Mais cela ne fonctionnera pas, car la fonction n'est disponible que dans l'étape de compilation Jade. Après cette étape, le code HTML généré n'a pas accès aux variables définies dans Jade.

Vous devez inclure un fichier JavaScript ou utiliser la balise de script:

script.
  var something = function() {
    console.log('something')
  }

button(onclick='something()') Click
35
timaschew

Ajoutez simplement un espace:

button(onclick='#{something()}') Click
3
Evgeny Samsonov