@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');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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