2017-03-09 9 views
5

をクリックし得る:私は印刷する場合、しかし:「未解決refrenceターゲット」Kotlin私は、コンパイラのエラーを取得する次のコードを記述した場合のjQueryのターゲットは

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

を唯一の「それ」は、それが財産目標を持って

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

私はどのようにして目標を取得するのですか?

+0

、私の答えに追加。 – IRus

答えて

1

標準ライブラリのjqを使用し、まず標準ライブラリのjqは推奨されていません。あなたのケースで

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

見ての通り、itMouseClickEvent次のとおりです。

はその後clickハンドラの定義を見てみましょう。しかし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) 
    } 
} 

また、あなたは活字体がkotlinするための既存の定義を変換することができます。

jQueryのタイピング:https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/jquery

ts2kt:私はts2kt忘れhttps://github.com/Kotlin/ts2kt

+0

JQueryを使用する新しい方法は廃止予定ですか?なぜなら、JQuery型の変数には、 '.html()'や '.next()'のようなメソッドしかありませんでしたが、JQueryライブラリ – eloo

+0

の多くが見つかりませんでした。 jquery用のkotlinインターフェース/関数を作成します。 – IRus

+0

これは第三者図書館の権利ですか? kotlinがjqの使用が推奨されていないと言えば、彼らは基本的なkotlinライブラリ(第三者の必要なし)でより良い方法を実装しているか、間違っていますか? – eloo

関連する問題