0

我有一个名为的对象paperClass(尽管我知道,JavaScript 中不存在类)。这包含对 a 的引用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()and$data()方法。不幸的是,我没有成功。你有什么想法?

4

1 回答 1

0

线

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

具有paperElementundefined 属性,因为它只存在于您绑定到的特定 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 回答