我正在尝试使用 val x = $(selectState).find("option").each((y: Element) => y) 。但是编译引发以下错误。
val x = $(selectState).find("option").each((y: Element) => y)
type mismatch; found : org.scalajs.dom.Element => org.scalajs.dom.Element (which expands to) org.scalajs.dom.raw.Element => org.scalajs.dom.raw.Element required: scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.Element,Int,Any]] (which expands to) scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.raw.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.raw.Element,Int,Any]]
我指的是堆栈溢出问题 here .
好吧,正式回答这个问题:是的,这是jquery facade中的一个bug。谢谢你指出这一点!
正如我所怀疑的,问题是 | type运算符会干扰编译器自动将Scala函数转换为JavaScript函数的能力。所以我不明白 (y: Element) => y (Scala函数)可以转换为JavaScript js。函数0[元素,任意]。
|
(y: Element) => y
所以我分手了 each 分为两个单独的重载,每个版本一个,并且看起来可以按需要工作。请更新到jquery facade 1.0-RC3,我认为它应该适合您。
each