Kotlin获得了jquery点击的目标

时间:2017-03-09 14:41:13

标签: kotlin

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

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

但是,如果我只打印“它”,则它具有属性目标

Instrumentation

我如何获得目标呢?

1 个答案:

答案 0 :(得分:2)

我想您使用标准库中的jq,并且不推荐使用标准库中的jq

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

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

如您所见,it在您的案例中为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