Как я могу сделать clearTimeout, если у меня есть несколько настроек? Здесь у меня есть код:Cleartimeout multiple settimeout
var $elie = $(".gear"), degree = 0, timer;
function rotate() {
$elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
$elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
$elie.css({ 'transform': 'rotate(' + degree + 'deg)'});
timer = setTimeout(function() {
++degree; rotate();
$('.gear').attr('timeout',timer);
},25);
}
$(".google").hover(function() {
clearTimeout($('.gear').attr('timeout'));
});
$(".gear").hover(function() {
rotate();
});
То есть: http://jsfiddle.net/T9YxL/1/ Проблема: Я парить на шестерней один раз, чем парить на Google логотип - все останавливается, как это имеет. Но когда я нахожусь на ролике дважды, мне приходится дважды наводиться на логотип Google и так далее. Как очистить все эти настройки сразу, например, я пару раз висел на передаче?
Я смотрел здесь: clearTimeout on multiple setTimeout , но это не помогло.
вы будете перезаписывать предыдущую переменную clearTimeout, если вы назначили несколько stTimeout, лучше всего было бы сделать массив и перебрать цикл с clearInterval .. –
Я не уверен, что вы можете/должны хранить таймауты в атрибутах, это не сделано для этого. – Virus721
@ Virus721: Вы можете, ручки таймера - это просто цифры. Атрибуты могут хранить числа (в виде строк, но затем, когда вы их извлекаете и передаете в clearTimeout, они возвращаются к номерам). –