jquery - 如何在 scala.js 中调用 $.modal.close()

标签 jquery scala.js

我正在使用这个jQuery modal library对于模式对话框。使用 Scala.js,如何调用相同的 Javascript $.modal.close()关闭 Scala 中的模式对话框?谢谢

更新#1

使用https://github.com/jducoeur/jquery-facadehttps://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 而不是 JQueryJQueryStatic$ 的类型,而 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/

相关文章:

jquery - 根据图像更改文本颜色

scala.js.dom ajax.post,错误状态时报错

scala.js - 如何从 Scala.js 调用 Javascript apply()?

class - Scala.js 在全局范围内看不到 JS *class*,但看到构造函数

javascript - 如何将history.pushState与浏览器的后退功能结合使用

scala.js - scala.js 中 javascript 对象的类型安全包装器

javascript - 如果 margin-left == 200px 则触发事件;

javascript - jQuery .click() 只工作一次

Javascript 和/或 jquery 优化和 jsPerf

javascript - 防止在 Bootstrap 轮播上移动滑动。数据触摸 ="false"不工作