Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2015, 14:24
Новичок на форуме
Отправить личное сообщение для dmsuslov Посмотреть профиль Найти все сообщения от dmsuslov
 
Регистрация: 28.10.2007
Сообщений: 8

Поймать событие изменения data-*
Привет всем!

Возникает ли какое-то событие при изменении атрибута DOM-элемента data? .change() , как я понял, не срабатывает.

Т.е.: если где-то выполняется $('#some_selector').data('id', 'some_value'), то можно ли повесить обработчик на событие изменения .data('id')?
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2015, 14:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

dmsuslov, нет событий по изменению свойств или атрибутов элементов...
Ответить с цитированием
  #3 (permalink)  
Старый 21.10.2015, 14:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от dmsuslov
Т.е.: если где-то
найти это и поставить после тригер
Ответить с цитированием
  #4 (permalink)  
Старый 21.10.2015, 15:15
Новичок на форуме
Отправить личное сообщение для dmsuslov Посмотреть профиль Найти все сообщения от dmsuslov
 
Регистрация: 28.10.2007
Сообщений: 8

Не так изящно получается... Действительно, видимо придется "вручную" генерировать событие :-)

Спасибо ответившим!
Ответить с цитированием
  #5 (permalink)  
Старый 21.10.2015, 21:07
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<body>
  <input type="button" id="test_value" data-id="off" value="Click Me">
    <script>
		window.onload = function(){
			var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
			var observer = new MutationObserver(function(mutations){
				 mutations.forEach(function(mutation){
					console.dir(mutation)
					alert(mutation.attributeName + ' Value: ' + target.getAttribute(mutation.attributeName));
				 });
			});
			
			var target = document.getElementById('test_value');
			observer.observe(target, {attributes: true});
			target.addEventListener('click', function(){
				this.dataset.id = 'on';
			});
		}
    </script>
  </body>

вариант использования Observer, думаю, что еще через гетеры сеттеры можно реализовать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поймать событие onclick() не обычным способом? mrmammoth Events/DOM/Window 6 29.04.2014 15:50
Подскажите событие любого изменения поля Rooner jQuery 3 16.10.2012 17:38
Событие изменения размера элемента <div>, <td> javascripter Events/DOM/Window 10 01.03.2011 03:33
Отловить событие изменения элемента pavl Events/DOM/Window 13 13.04.2009 14:00
WYSIWYG не могу поймать событие onkeypress scuter Общие вопросы Javascript 5 25.09.2008 16:14