Когда function1 создает новый тайм-аут для вызова себя снова и снова, просто переместите эту информацию о создании тайм-аута в условие if, чтобы оно запускалось только тогда, когда «hide <10» имеет значение true. Таким образом, он больше не будет работать. </p>
Да, я думаю, имеет смысл останавливать выполнение функции снова и снова, если она ничего не делает.
Ваш код теперь будет выглядеть так:
function function1(hide){
if((hide<10)){
if (hide%2==1){
$('.myclass2').css("color","black");
}
else{
$('.myclass2').css("color","white");
}
hide = hide+1;
setTimeout("blinks("+hide+")",300); // moved here
}
else{
//some code to stop performing of this function.
}
}.