Кажется, это не помогает...
У меня есть страница, которая скрывает определенные ссылки. Когда DOM загружен, я использую jQuery для переключения некоторых из этих элементов. Это обусловлено использованием атрибута data следующим образом:
<div class="d_btn" data-usr='48'>
<div class="hidden_button">
Тогда у меня есть код:
$.each($(".d_btn"), function() {
var btn = $(this).data('usr');
if ( btn == '48' ){
$(this).children('.hidden_button').toggle();
}
Все вышеперечисленное работает как и планировалось. Проблема в том, что я пытаюсь удалить data-usr из класса .d_btn после вычисления выражения if. Я пробовал следующее и ничего не работает (т.е. После загрузки страницы источник все еще показывает атрибут data-usr:
$(this).removeAttr("data-usr");
$(this).removeData("usr");
Я работаю над этим уже пару часов и... ничего! Помощь очень ценится!
UPDATE
Я пробовал отличные предложения по установке атрибута data в пустую строку, но я все еще не получаю желаемого результата.
Чтобы объяснить немного дальше, причина, по которой я пытаюсь удалить этот атрибут, заключается в том, что когда ответ ajax добавляет другой элемент на страницу, ранее добавленные элементы уже имеют кнопку, показанную или скрытую. После ответа AJAX я вызываю одну и ту же функцию после загрузки DOM.
В настоящее время, когда что-то добавляется через AJAX, он переключает все кнопки (показывающие те, которые были скрыты, и наоборот). Ugh...
Я также полностью готов попробовать альтернативы моему подходу. Спасибо!
UPDATE
Ну, лампочка просто вспыхнула, и я могу делать то, что хочу, просто используя .show() вместо .toggle()
Во всяком случае, мне все равно хотелось бы найти ответ на этот вопрос, потому что страница будет потенциально проверять сотни предметов всякий раз, когда что-то добавляется - это кажется ужасно неэффективным (даже для компьютера, хахаха.)