我正在为this Mootools幻灯片添加一些新代码。
我添加了缩略图和通过缩略图滚动的鼠标悬停功能
现在我需要在mouseenter
时使幻灯片显示中的计时器停止/暂停。我正在尝试下面的代码,但得到了Uncaught TypeError: Object #<HTMLDivElement> has no method '_stopClock'
。
spinAreaDiv.addEvent('mouseenter', function(){
this._stopClock();
})
如何拨打课程_stopClock
?
var Spin = new Class({
...
...
_stopClock:function(){
if(!this.options.timer) {
return false;
} else {
this.timerRunning = false;
clearInterval(this.clock);
this.timer.pause.addClass('active');
}
},
...
答案 0 :(得分:2)
这是一个具有约束力的问题。当来自dom事件的事件回调触发时,这将是元素。
element.addEvent('something', function(){
this === element; // true;
});
// save a reference
var self = this;
element.addEvent('something', function(){
this === element; // true;
self._stockClock(); // works.
});
// or. use Function.prototype.bind
element.addEvent('something', function(){
this !== element; // true;
this._stopClock(); // works.
}.bind(this));
// or even...
this.element.addEvent('something', this._stopClock.bind(this)); // works.