Pavell18RUS
@Pavell18RUS

Почему не работает jQuery функция .data('', '')?

Не вставляет data-url. В чем проблема? Все остальное работает.
$(function () {
    $('.play , .download').click(function () {
        if ($(this).data('url')) {
            console.log('Already exist!');
        } else {
            var trackItem = $(this).parent('.track'),
                id = trackItem.data('id');

            $.getJSON('https://api.vk.com/method/audio.getById', {
                audios: id,
                access_token: '***'
            }).done(function (json) {
                var url = json.response['0'].url;
                
                trackItem.data('url', url);
            });

            console.log('Created!');
        }
    });
});

Так же не работает с помощью .attr()
$(function () {
    $('.play , .download').click(function () {
        if ($(this).attr('data-url')) {
            console.log('Already exist!');
        } else {
            var trackItem = $(this).parent('.track'),
                id = trackItem.data('id');

            $.getJSON('https://api.vk.com/method/audio.getById', {
                audios: id,
                access_token: '***'
            }).done(function (json) {
                var url = json.response['0'].url;

                trackItem.attr('data-url', url);
            });

            console.log('Created!');
        }
    });
});
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
Pavell18RUS
@Pavell18RUS Автор вопроса
Изменил версию jQuery на 3.1.1 - боль прошла.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alexfilus
@alexfilus
Senior backend developer
Почему, в вашем случае не знаю, но .attr надёжнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы