如果我写下一个代码我得到编译器错误:"未解析的refrence:target"
jq("#element").click {
console.log(it.target)
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我只打印"它"它具有属性目标
r.Event {originalEvent: MouseEvent, type: "click", target: button, currentTarget: button, relatedTarget: null…}
Run Code Online (Sandbox Code Playgroud)
那么我如何获得目标呢?
我想您使用jq的是标准库,首先jq标准库已被弃用。
然后我们看一下clickhandler的定义:
public fun click(handler: (MouseClickEvent) -> Unit): JQuery
Run Code Online (Sandbox Code Playgroud)
如您所见,it在您的情况下是MouseClickEvent. 但 且MouseClickEvent不MouseEvent包含target.
您可以为 jquery 编写自己的绑定:
import jquery.MouseClickEvent
import jquery.MouseEvent
@JsName("$")
public external fun jq(selector: String): JQuery
public external class JQuery() {
public fun click(handler: (ExtendedMouseClickEvent) -> Unit): JQuery
}
public external class ExtendedMouseClickEvent() : MouseEvent {
public val target: JQuery
public val which: Int
}
fun main(args: Array<String>) {
jq("#element").click {
console.log(it.target)
}
}
Run Code Online (Sandbox Code Playgroud)
此外,您还可以将 TypeScript 的现有定义转换为 kotlin。
jQuery 类型:https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/jquery
ts2kt: https: //github.com/Kotlin/ts2kt
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |