2

10個のli要素があり、そのうち5個は内部に要素があります。そして、 Mootoolsを使用してli要素にイベントを追加したいと思います。

クラスにはli要素のイベントを含む変数とメソッドがほとんどなく、私の問題はここから来ています。下記のliのイベントをご覧ください。

li.addEvents({
    mouseover: function(e){
        console.log(this.id + ' / ' + this.classVar);
    }.bind(this)
});

各liには一意のIDがあり、classVarにも情報があるため、 li自体とクラス変数を参照する必要がある場合。ただし、問題は、イベントにbind(this)を使用すると、 this.idが機能しないか、使用しない場合、*this.classVar'が機能しないことです。

this.idの代わりにe.target.idを使用すると、 li要素がない場合にのみ、正しいidが返されます。それ以外の場合、 e.targetは要素を参照ます。

誰かがこれについて私を助けてくれますか?よろしくお願いします

4

1 に答える 1

3

最も簡単な方法は、selfまたはme回避策を使用することです...

function myClass()
{
    var self = this;
    this.classVar = 'foo';

    // some other code

    li.addEvents({
        mouseover: function(e){
            console.log(this.id + ' / ' + self.classVar);
        }
    });
}
于 2012-06-28T08:26:42.130 に答える