Javascript 调用类以停止/暂停鼠标上的幻灯片放映

Javascript 调用类以停止/暂停鼠标上的幻灯片放映,javascript,mootools,slideshow,Javascript,Mootools,Slideshow,我正在为Mootools幻灯片添加一些新代码 我添加了缩略图和鼠标悬停功能,可以滚动缩略图。 现在我需要使幻灯片上的计时器在mouseenter时停止/暂停。我正在尝试使用下面的代码,但得到了一个未捕获的TypeError:Object#没有方法“\u stopClock” spinAreaDiv.addEvent('mouseenter', function(){ this._stopClock(); }) 我如何调用该类\u stopClock var Spin = new Class

我正在为Mootools幻灯片添加一些新代码

我添加了缩略图和鼠标悬停功能,可以滚动缩略图。
现在我需要使幻灯片上的计时器在
mouseenter
时停止/暂停。我正在尝试使用下面的代码,但得到了一个
未捕获的TypeError:Object#没有方法“\u stopClock”

spinAreaDiv.addEvent('mouseenter', function(){
this._stopClock();  
})
我如何调用该类
\u 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');
    }
},
...

这是一个有约束力的问题。当来自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.

谢谢你关注我的问题。我相信你的答案是正确的。(+1为我提供了3种不同的修复方法)。我必须阅读“绑定”才能理解你的答案。之后会回来:)顺便说一下,试过你的想法,得到了
对象[Object global]没有方法“\u stopClock”
。我想问题出在我的代码上。威尔(如前所述)多读些书,然后回来。谢谢我设法使它符合你的建议。我在JS中仍然是“绿色”的,所以我不确定为什么相同的代码不能在函数中的类中工作。但我会检查的。不管怎样,你的回答让它起作用了。谢谢我以为这是在课堂上。通常,当你扩展东西时,它在proto上
this.methodname
引用对象(类实例)上的方法。如果它转到全局对象,则表示您扩展了错误的类。