Я следующий код JQuery:не ClearInterval остановка
JModel.ClipThumbs.Clip.prototype = {
interval: null,
setThumb: function(src) {
this.mainThumb.src = src;
},
mouseEntered: function(el) {
var temp = this;
var x = 0;
this.interval = setInterval(function() {
if (x >= temp.galleryImgs.length) {
x = 0;
}
// set main thumb
temp.setThumb(temp.galleryImgs[x].src);
// increment for the display (0/7 being bad looking to users)
x++;
// update image count display
$(temp.clipCount).html(""+x+"/"+temp.galleryImgs.length);
}, 1000);
},
mouseLeft: function(el) {
clearInterval(this.interval);
}
};
Когда я выхожу из поворота галереи не останавливается
идей?
EDIT: исправление было:
jQuery(this.mainThumb)
.bind('mouseenter', jQuery.proxy(this.mouseEntered, this))
.bind('mouseleave', jQuery.proxy(this.mouseLeft, this));
mouseleave
должен был иметь jQuery.proxy
с этим связаны также получить доступ к этому.
Вместо повторения 'JModel.ClipThumbs.Clip.prototype.' несколько раз, сделайте это так:' JModel.ClipThumbs.Clip.prototype = {setMainThumb: function() {...}, galleryImageMouseEnter: function() {...}, ...} ' –
Благодарим за предложение, теперь оно выглядит очень аккуратно! – azz0r
Будьте осторожны. Когда вы помещаете свойство в прототип, это свойство используется всеми экземплярами. Обычно вы хотите поместить методы в прототип. Но в приведенном выше коде вы также помещаете свойство 'interval' в прототип, что означает, что каждый экземпляр будет использовать это же свойство. Вы, вероятно, не хотите этого делать, верно? –