@acces5_denied

Как назначить jquery событие на изменения значения атрибута data?

Помогите разобраться с задачей.
Есть несколько блоков
div id="tab_1" aria-hidden="false".../div
div id="tab_2" aria-hidden="false".../div
div id="tab_3" aria-hidden="false".../div
атрибут aria-hidden принимает два значения - true и false.
Как можно выполнить функцию при изменении у 3-го блока значения aria-hidden на true

Спасибо.
  • Вопрос задан
  • 1459 просмотров
Решения вопроса 1
@dimentimor
https://jsfiddle.net/v2cLaoer/

var div = document.getElementById('div');

// Наблюдатель за изменениями DOM элемента
var MutationObserver = (function () {
	var pref = ['WebKit', 'Moz', 'O', 'Ms', ''];

	for (var i=0; i < pref.length; i++) {
		if (pref[i] + 'MutationObserver' in window) {
			return window[pref[i] + 'MutationObserver'];
		}
	}
	return false;
}());

new MutationObserver( function (mutations) {
	mutations.forEach( function (e, i) {

		console.log('измененo'); // что сделать при изменении
		console.log(e);
	});

}).observe(div, { attributes: true });

div.dataset.ololo = true; // изменяем элемент, и смотрим консоль


// UPD
Если нужно именно событие, то создаем CustomEvent, и dispatch-им его внутри наблюдателя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы