web-dev-qa-db-ja.com

Jadeでのボタンのクリック

クリックされたときにJavaScript関数を実行するボタンを取得するのに問題があります。以下がJadeファイルです

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

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

これはどこで問題がありますか?

14
Philip O'Brien

この行で:
button(onclick='#{something()}') Click

jadeに、関数のコンテンツをonclick属性の値に貼り付けるように指示します。

関数名を参照するだけです:

button(onclick='something()') Click

ただし、関数はJadeコンパイルステップでのみ使用できるため、これは機能しません。このステップの後、生成されたHTMLはJadeで定義された変数にアクセスできなくなります。

JavaScriptファイルを含めるか、スクリプトタグを使用する必要があります。

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

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

スペースを追加するだけです:

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