Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   После удаления атрибута ничего не меняется (https://javascript.ru/forum/jquery/53386-posle-udaleniya-atributa-nichego-ne-menyaetsya.html)

sash003 01.02.2015 21:27

После удаления атрибута ничего не меняется
 
Здравствуйте, столкнулся с неожиданными граблями Есть скрипт всплывающей подсказки:
// функция для создания подсказок для элементов
// element - имя элемента, например span
function init_tooltip(element){
    // перебираем все элементы на странице, для которых нужна подсказка
     $(element).each(function(num){
        // проверяем у элемента наличие атрибута title и смотрим пустой он или нет
        if($(this).attr('data-title') && $(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(){
    // создаем подсказки для всех span`ов
     init_tooltip("span");
     init_tooltip("div");
     $('body').on('click', '#youtube', function(){
     	if($(this).attr('data-title')){
     	var video = $(this).attr('data-title');
     	$('body').append('<br><br>'+video);
     	$(this).removeAttr('data-title');}
     });
});


и после удаления аттрибута $(this).removeAttr('data-title'); всплывающая подсказка работает как ни в чём не бывало.. Как правильно сделать? Атрибут удалён, я проверял. Откудава ж оно его берёт для подсказки, не доганяю

рони 01.02.2015 21:36

Цитата:

Сообщение от sash003
Как правильно сделать?

что сделать?

рони 01.02.2015 21:36

Цитата:

Сообщение от рони
Откудава ж оно его берёт для подсказки, не доганяю

строка 10

sash003 01.02.2015 21:58

Верно, но атрибут же удалён? Мне нужно чтобы после клика подсказка больше не всплывала
$('body').on('click', '#youtube', function(){
42
        if($(this).attr('data-title')){
43
        var video = $(this).attr('data-title');
44
        $('body').append('<br><br>'+video);
45
        $(this).removeAttr('data-title');}
46
     });
А она всё равно откуда-то берётся :stop:

рони 01.02.2015 22:03

sash003,
так удаляйте span с подсказкой

sash003 01.02.2015 22:13

рони,
Спасибо, как-то не додумался :thanks:

nerv_ 01.02.2015 23:12

Цитата:

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

Мир не изменится после удаления атрибута :no:


Часовой пояс GMT +3, время: 08:59.