@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);
        }
    );
});

Если кликнуть по кнопке, значение атрибута изменится, но если кликнуть по кнопке еще раз, то берется значение то, которое было при загрузке страницы, т.е., изменения атрибута не учитываются. Как это исправить?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
nowm
@nowm
У jQuery есть проблемы с кэшированием в data. Я когда работал с ним, всегда старался делать что-то вроде container.attr('data-blocked'), чтобы не ловить самые неожиданные глюки.

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

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

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

Войти через центр авторизации
Похожие вопросы
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
summer Ярославль
от 100 000 до 140 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект