调用一个类来停止/暂停mouseenter上的幻灯片放映

时间:2013-06-16 15:21:36

标签: javascript mootools slideshow

我正在为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');
    }
},
...

1 个答案:

答案 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.