我有一个 jQuery UI 元素,我想写类似的东西
$('myAccordion').accordion("refresh")
但是,这不会编译,因为我只有jQuery的外观 - 而不是jQuery UI。
我该怎么办?
答案 0 :(得分:1)
基本上,您为所需功能编写了一个迷你外观。这看起来令人生畏,但关键是你只需要写下你实际使用的东西,所以它非常简单。
请注意,这不是袖手旁观,也没有经过测试,但是一个简单的版本会是这样的:
@js.native
trait JQueryAccordionFacade extends js.Object {
def accordion(cmd:String):JQuery = js.native
}
...
implicit def jq2Accordion(jq:JQuery):JQueryAccordionFacade = jq.asInstanceOf[JQueryAccordionFacade]
你需要一些导入和东西,显然这个可以以更强类型的方式编写,但这就是大部分内容:只是你要调用的函数的描述,以及从普通JQuery外观到Accordion外观的隐式转换。一旦掌握了它,门面写作就很容易了。
Here are a couple of examples of some fully-worked jQuery UI facades和here are the full details on how to write jQuery facades(远远超过您的需要,但如果您想进一步推动这一点)。