Возможно ли создать своё событие на jquery? Допустим нужно выполнять какое то действие, если у определенного контейнера сменился класс. Проблема в том что класс меняется программно в очень многих местах и не хочется искать все эти места. Хочется написать что-то вроде:
$('#block').on('addClass', function() {...});
Возможно ли такое?
Да. В местах, где вы программно меняете класс, можете добавить .trigger('addClass');
Тогда пример вашего кода выше заработает.
Можно так же переопределить метод .addClass(), но я считаю это дурным тоном.
Пример:
// Create a closure
(function(){
// Your base, I'm in it!
var originalAddClassMethod = jQuery.fn.addClass;
jQuery.fn.addClass = function(){
// Execute the original method.
var result = originalAddClassMethod.apply( this, arguments );
// trigger a custom event
jQuery(this).trigger('addClass');
// return the original result
return result;
}
})();
// document ready function
$(function(){
$("#YourExampleElementID").on('addClass', function(){
//do stuff here
});
});
Ссылки:
trigger
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Загружаю маркеры на картуКак правильно их отфильтровывать? Пробовал удалить все маркеры через функцию RemoveMarkers(), но они все равно остаются...
Захотелось получить ответ на вопрос, который мучает:) В интернете не нашел хорошего ответа (может плохо искал)
Мне нужно отловить событие scroll вверх и вниз, и в зависимости от этого менять thisprops
использую следующие заголовки http