如何在 clojure Hiccup 中嵌入 javascript?

Kin*_*anz 5 html javascript clojure hiccup clojurescript

我正在用 clojure 编写一个带有 Hiccup(和其他东西)的网络服务器应用程序。我正在尝试使用一个小 JS 启用和禁用两个下拉字段的复选框,但我无法使其工作。

[:head
[:script "function toggleText(cb, t1, t2) {
    document.getElementById(t1).disabled = !cb.checked;
    document.getElementById(t2).disabled = !cb.checked;
}"]]

[:td (hf/check-box {:on-change (str "toggleText(" (name endtag) "," (name tytag) "," (name tmtag) ")")} endtag)]
[:td (hf/drop-down tytag (range 2013 2031) 2017)]
[:td (hf/drop-down tmtag (range 1 13) 6)]
Run Code Online (Sandbox Code Playgroud)

Ale*_*eph 3

on-change是一个 React 处理程序,不能在服务器端 HTML 中工作。

如果您不想创建单独的 JS 文件,可以使用属性onclick :下面的代码应该可以工作(前提是该hf/check-box函数创建具有给定属性的元素):

[:td (hf/check-box
      {:onclick (str "toggleText(" (name endtag) ","
                     (name tytag) "," (name tmtag) ")")}
      endtag)]
Run Code Online (Sandbox Code Playgroud)