我正在使用这个jQuery modal library对于模式对话框。使用 Scala.js,如何调用相同的 Javascript $.modal.close()
关闭 Scala 中的模式对话框?谢谢
更新#1
使用https://github.com/jducoeur/jquery-facade与 https://github.com/jducoeur/jsext 一起我创建了这些样板来配置模式对话框,
@js.native
trait JQueryModal extends JQuery {
def modal(params: JQueryModalOptions): Nothing = js.native
}
@js.native
trait JQueryModalOptions extends js.Object
object JQueryModalOptions extends JQueryModalOptionsBuilder(noOpts)
class JQueryModalOptionsBuilder(val dict: OptMap) extends JSOptionBuilder[JQueryModalOptions, JQueryModalOptionsBuilder](new JQueryModalOptionsBuilder(_)) {
最佳答案
从预期的调用站点 $.modal.close()
中,我们可以看到 modal
是 $ 的“静态”部分的属性
,因此您应该使用 JQueryStatic
而不是 JQuery
。 JQueryStatic
是 $
的类型,而 JQuery
是 $(...)
返回的内容的类型.
此外,modal
字段可以与嵌套方法一起使用(如 close()
中)或作为函数调用本身(如 $.modal 中) (...)
)。因此,最好使用 apply
方法将其建模为特征。
@js.native
trait JQueryModalStatic extends js.Object {
def apply(params: JQueryModalOptions): Unit = js.native
def close(): Unit = js.native
}
implicit class JQueryStaticToModalStatic(private val jQuery: JQueryStatic.type)
extends AnyVal {
@inline def modal: JQueryModalStatic =
jQuery.asInstanceOf[js.Dynamic].modal.asInstanceOf[JQueryModalStatic]
}
当隐式类在范围内(已导入)时,这允许调用 $.modal(...)
(由 apply
方法提供)定义)和$.modal.close()
。
关于jquery - 如何在 scala.js 中调用 $.modal.close(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50429272/