Javascript 调用类以停止/暂停鼠标上的幻灯片放映
我正在为Mootools幻灯片添加一些新代码 我添加了缩略图和鼠标悬停功能,可以滚动缩略图。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
现在我需要使幻灯片上的计时器在
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
引用对象(类实例)上的方法。如果它转到全局对象,则表示您扩展了错误的类。