0

というオブジェクトがありますpaperClass(知っていても、JavaScript にはクラスが存在しません)。これには への参照が含まれていdivElementます。さて、ホバリングするdivElementことで、オブジェクトへの参照を取得したいと思いpaperClassます。私は次の方法でそれを試しました:

function paperClass(){
    this.divElement = $("#divElementID");
    this.divElement.paperElement = this;
    this.divElement.hover(this.handleHover);
    console.log(this.divElement.attr("id"));    // -> divElementID
    console.log(this.divElement.paperElement);    // -> paperClass Object
}

paperClass.prototype.handleHover = function(event){
    console.log(this.id);    // -> divElementID
    console.log($(this).attr("id"));    // -> divElementID
    console.log(this.paperElement);     // -> undefined (which seems ok to me)
    console.log($(this).paperElement);  // -> undefined (WHY????)
}

.attr()$data()メソッドも試しました。残念ながら、私は成功しませんでした。あなたはなにか考えはありますか?

4

1 に答える 1

0

この線

console.log($(this).paperElement);  // -> undefined (WHY????)

には、paperElementバインドした特定の jQuery オブジェクトにのみ存在するため、未定義のプロパティがありますthis.divElement

新しい jQuery オブジェクトを作成した場合、jQuery ライブラリによって設定されたデフォルト プロパティのみが含まれます。

代わりにこれを試してください:

function paperClass(){
    this.divElement = $("#divElementID");
    this.divElement[0].paperElement = this; // change this line
    this.divElement.hover(this.handleHover);
    console.log(this.divElement.attr("id"));
    console.log(this.divElement.paperElement);
}

paperClass.prototype.handleHover = function(event){
    console.log(this.id);
    console.log(this.paperElement);
}
于 2013-10-31T09:55:01.273 に答える