Стоит передо мной такая задача. Надо обратиться к тэгу «span», у которого задан опрделенный ID. Но мой вариант не работает. Пробовал много разных способов, но все они оказались бредовыми и просто «ради эксперимента».
Вот такая функция:
function showInterimError(id, color, msg) {
var span = $('span#'+id);
if( !$('body').find('#'+id).is('span') ) {
$('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');
$(span).animate({opacity: '1'}, "fast");
} else {
$(span).animate({opacity: '0'}, "fast", function(){
$(span).remove();
$('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');
$(span).animate({opacity: '1'}, "fast");
});
}
}
Вводные данные:
showInterimError('reg_name', 'db0000', 'Заполните форму');
Спустя 7 минут, 16 секунд (18.04.2011 - 14:44) Nikitian написал(а):
Так может и нет такого id или он не уникален?
Спустя 2 минуты, 35 секунд (18.04.2011 - 14:47) AlmazDelDiablo написал(а):
Прошу прощения, забыл добавить, что еще есть форма и небольошй обработчик:
<input type="text" id="reg_name" />
$('#reg_name').focusout(function(){
if( $('#reg_name').val() == '' ) {
showInterimError('reg_name', 'db0000', 'Введите ваши ФИО');
return false;
}
});
Спустя 2 минуты, 22 секунды (18.04.2011 - 14:49) Nikitian написал(а):
Что-то я совсем запутался: как так, сперва удалить элемент $(span).remove(); а потом после него ставить что-то другое? $('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');
Спустя 4 минуты, 25 секунд (18.04.2011 - 14:53) AlmazDelDiablo написал(а):
Сначало удаляем существующий спан, если он есть и заменяем его на новый спан. А форма, после которой он добавляется — остается на месте.
Спустя 8 минут, 49 секунд (18.04.2011 - 15:02) Nikitian написал(а):
А ничего, что это идентичные записи?
$('span#'+id)
$('#'+id)
Поэтому делая $(span).remove(); сделать дальше $('#'+id).after() уже нельзя.
$('span#'+id)
$('#'+id)
Поэтому делая $(span).remove(); сделать дальше $('#'+id).after() уже нельзя.
Спустя 11 минут, 51 секунда (18.04.2011 - 15:14) AlmazDelDiablo написал(а):
Угумс... Попробовал вот так:
function showInterimError(id, color, msg) {Но тоже не работает.
var spanId = $('spanId#'+id);
var inputId = $('inputId#'+id);
if( !$('body').find(spanId) ) {
$(inputId).after(' <spanId id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</spanId>');
$(spanId).animate({opacity: '1'}, "fast");
} else {
$(spanId).animate({opacity: '0'}, "fast", function(){
$(spanId).remove();
$(inputId).after(' <spanId id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</spanId>');
$(spanId).animate({opacity: '1'}, "fast");
});
}
}
Спустя 6 минут, 31 секунда (18.04.2011 - 15:21) Nikitian написал(а):
id должен быть уникален в рамках всего документа. Используйте класс для идентификации.
_____________
Блог | VK | GitHub | Twitch