0

在我的 scala-js 应用程序中,我想使用bootstraptoggle库来创建一个漂亮的开关按钮。

到目前为止,我正在通过一种看起来像这样的方法创建切换按钮:

import scalatags.JsDom
import scalatags.JsDom.all._
// ...


def createToggleButton(): JsDom.TypedTag[Input] = {
  def onClick = println("HELLO WORLD!")
  input(id := "myToggle",
        attr("data-toggle") := "toggle",
        `type` := "checkbox",
        onclick := onClick,
        attr("data-on") := "ON",
        attr("data-off") := "OFF",
        attr("data-onstyle") := "success",
        attr("data-width") := "85",
        attr("data-height") := "26")
}

渲染它并将其添加到我的 DOM 时,它看起来像这样:

关闭 打开

到目前为止,一切正常。然而,奇怪的是:当渲染页面('F5')时,我的控制台(Chrome - 'F12')显示一个“HELLO WORLD!” 从一开始就输出。之后,onclick 事件似乎不再触发。

有谁知道如何解决这一问题?

4

2 回答 2

2

您应该将表单的功能() => action()赋予属性onclick。目前,您正在评估def onClick一次,并将该函数调用的结果(即()值)存储在onclick属性中。相反,你应该写

onclick := { () => onClick }
于 2018-09-04T15:45:53.567 回答
0

由于我无法让引导开关工作,我决定自己做。所以,这是我的解决方案:ToggleSwitchWithLabels.scala

于 2018-09-05T07:50:26.060 回答