sash

ответов0 / помог0

После удаления атрибута ничего не меняется

1679692449
Здравствуйте, столкнулся с неожиданными граьлями Есь скрипт всплывающей подсказки:

// функция для создания подсказок для элементов
// element - имя элемента, например span
function init_tooltip(element){
    // перебираем все элементы на странице, для которых нужна подсказка
     $(element).each(function(num){
        // проверяем у элемента наличие атрибута title и смотрим пустой он или нет
        if( $(this).attr('data-title') != "" && typeof($(this).attr('data-title')) != "undefined"){
            // если есть title, то
            // создаем скрытый блок - подсказку с текстом
            $("body").append("<span class='class_tooltip tooltip_" + element + num + "'>" + $(this).attr('data-title') + "</span>");
            // элемент, сама подсказка, только что созданная
            var one_tooltip = $(".tooltip_" + element + num);
            // навешиваем действия на события 
            // при наведении курсора
            $(this).on('mouseover', function(){
                // показываем подсказку
                one_tooltip.fadeIn(100);
            });
            // при отведении курсора
            $(this).on('mouseout',function(){
                // скрываем подсказку
                one_tooltip.fadeOut(100);                  
            });
            // при нахождении курсора на элементе
            $(this).on('mousemove',function(curs_position){
                // смещаем подсказку за курсором
                one_tooltip.css({
                    // делаем отступ по 10 пикселей сверху и слева от курсора
                    left: curs_position.pageX + 10, 
                    top: curs_position.pageY + 10
                });
            });
        }
    });
}
 
$(document).ready(function(){
    // создаем подсказки для элементов
     init_tooltip("span");
     init_tooltip("div");
     $('body').on('click', '#youtube', function(){
        var video = $(this).attr('data-title');
        $('body').append('<br><br>'+video);
        $(this).removeAttr('data-title');
     });
});
и после удаления аттрибута $(this).removeAttr('data-title'); всплывающая подсказка работает как ни в чём не бывало.. Как правильно сделать? Атрибут удалён, я проверял. Откудава ж оно его берёт для подсказки, не доганяю
vovandr
ответов2 / помог1
1679695197
У вас удаляются подсказки только с элемента с id youtube
влепить жирный лайк
sash
ответов0 / помог0
1679695240
vovandr, Не в том дело, разобрался уже малость. Оно создаёт элементы (спаны с подсказками) и они уже есть на странице, независимо от атрибута data-title, так что не удаляется ничего
влепить жирный лайк
Сначала вход
A B i U S JS PHP HTML CSS SQL C C++ C# PYTHON JAVA
Для входа только имэйл или имя и апроль
Можно сменить аватар
Имэйл Ваше имя
Пароль