Kotlin获取jquery点击的目标

如果我写下一个代码,我得到的编译器错误:“Unresolved refrence:target”

jq("#element").click { console.log(it.target) } 

但是,如果我只打印“它”它有财产目标

 r.Event {originalEvent: MouseEvent, type: "click", target: button, currentTarget: button, relatedTarget: null…} 

那么我怎样才能得到目标呢?

我想你使用jq从标准库,首先从标准库jq已被弃用。

然后让我们看看click处理程序的定义:

 public fun click(handler: (MouseClickEvent) -> Unit): JQuery 

正如你看到的,在你的情况是MouseClickEvent 。 但MouseClickEventMouseEvent不包含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) } } 

另外,您可以将TypeScript的现有定义转换为kotlin。

jQuery的类型: https : //github.com/DefinitelyTyped/DefinitelyTyped/tree/master/jquery

ts2kt: https : //github.com/Kotlin/ts2kt