clearTimeout
необходимо передать идентификатор тайм-аута, этот идентификатор возвращается setTimeout
.
clearTimeout();
ничего не делает. Вы можете поместить возвращаемые значения из setTimeout
в массив, а затем выполнить цикл по ним и запустить clearTimeout
.
var timeouts = []; // Array of timeouts
var myTimer = setInterval(function(){
var eleID = '';
var delayTimer = '';
$('#hp-fcas li').each(function(i) {
eleID = $(this).attr('id');
delayedTrigger( $('#'+eleID + ' a'), 7000*i);
});
function delayedTrigger(elem, delay){
timeouts.push(setTimeout(function(){ // push onto array
$(elem).trigger('click');
}, delay));
}
}, 21000);
$(".play").click(function(){
$.each(timeouts, function(i,v){ // clear all timeouts
clearTimeout(v);
});
clearInterval(myTimer);
});