のような jquery ホバー バインディングを使用すると、jqueryはホバー$(".element").hover(functionHoverIn,functionHoverOut)
された要素を として渡すようthis
です。そのようです:
$('.element').hover(function(e) {
$(this).attr("data-hovered", "true");
//do whatever else
}, function(e) {
//etc
}
}
this
これらの無名関数内でorを介して要素にアクセスできるので便利です$(this)
。ただし、typescript と競合するようです。または、おそらく私は何かを理解していません:
class FancyHover {
HoverElement:JQuery;
constructor(HoverElement:JQuery) {
this.HoverElement = HoverElement;
this.HoverElement.hover(this.HandleHover, this.HandleHover);
}
HandleHover(event:JQueryEventObject):void {
$(event.currentTarget).toggleClass("hovered");
this.OtherFunction(); //Throws error
//Uncaught TypeError: Object #<HTMLDivElement> has no method 'OtherFunction'
}
OtherFunction():void {
//do anything
}
}
理想的には、無名関数の代わりに関数 ( などthis.HandleHover
) を呼び出しに渡したいと考えています。.hover(functionIn,functionOut)
ただし、これを行うと、FancyHover の現在のインスタンスを参照できなくなります。どうにかして現在のインスタンスを関数 HandleHover に渡すことができるでしょうか?