Задать вопрос
@denism300

Как считать измененный атрибут?

Есть скрипт, если упрощенно то так:
$(document).on('click', '.lk-messages a', function (e) {
    e.preventDefault();
    var container = $(this).closest('.lk-messages_main'),
        blocked_by = container.data('blocked');
    console.log(blocked_by);
		
    $.post('/wp-admin/admin-ajax.php',
        {
            'action': 'blocking',
            'blocked_by': blocked_by
        },
        function (r) {
		        container.data('blocked', r);
        }
    );
});

Если кликнуть по кнопке, значение атрибута изменится, но если кликнуть по кнопке еще раз, то берется значение то, которое было при загрузке страницы, т.е., изменения атрибута не учитываются. Как это исправить?
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 1
nowm
@nowm
У jQuery есть проблемы с кэшированием в data. Я когда работал с ним, всегда старался делать что-то вроде container.attr('data-blocked'), чтобы не ловить самые неожиданные глюки.

// Прочитать значение data-blocked
container.attr('data-blocked');

// Установить новое значение data-blocked
container.attr('data-blocked', 'some value');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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