Здравствуйте
Есть пользовательская функция blink3, при помощи котрой можно поочередно скрывать/показывать элемент (элемент мигает).
Функция не моя, поэтому ничего по существу сказать больше не могу.
вот валидация инпутов, если инпут не прошел валидацию - рядом расроложенный span начинает "мигать"
вопрос в следующим - как остановить скрытие/показ span, если конкретный инпут прошел валидацию (
без setInterval и setTimeout)
<button id="go">go</button><br>
<span id="err1">error</span> <input type="text" id="inp1" /><br>
<span id="err2">error</span> <input type="text" id="inp2" />
$("#go").click(function(){
if($("#inp1").val() != "тест"){
$("#err1").blink3(-1, 500);
}else{
$("#err1").blink3(0); //так остановить скрытие/показ не получается
}
if($("#inp2").val() != "тест"){
$("#err2").blink3(-1, 500);
}else{
$("#err2").blink3(0);
}
});
// функция blink3
// $("#myID").blink3(-1, 500);
// первый параметр (-1) - бесконечное количество скрытий/показов
// второй параметр (500) - продолжительность выполнения fadeTo
jQuery.fn.extend({
blink3: function (i, duration){
var c = i;
if(i===-1 || c-- > 0){
$(this).fadeTo(duration, 0.1, function (){
$(this).fadeTo(duration, 1, function (){
$(this).blink3(c, duration);
});
});
}
}
});
Что я пробовал сделать:
1) так остановить не получается - $("#err1").blink3(0, 0);
2) также пробовал еще один вариант -
в функцию blink3 добавил условие if(run == false){return};
а в условии валидации инпута
if($("#inp2").val() != "тест"){
$("#err2").blink3(-1, 500);
}else{
run = false;
}
в этом варианте происходит остановка "мигания" всех спанов, а мне нужна остановка только конкретного спана..