Potreste essere in grado di aggirare un po 'hacky . Hook
.addClass() & .removeClass() in questo modo:
var _addClass = $.fn.addClass,
_removeClass = $.fn.removeClass;
$.fn.addClass = function(){
// do whatever here
return _addClass.apply(this, arguments);
}
$.fn.removeClass = function(){
// do whatever here
return _removeClass.apply(this, arguments);
}
questo modo, si supponendo che sono solo interessati a guardare elementi cambiamenti di classe con jQuery, è possibile attivare qualsiasi codice sul adding
o removing
classi. Di nuovo, solo se stai usando jQuery, per questo esempio.
Ovviamente, è possibile hook
e overwrite
qualsiasi funzione javascript in questo modo.
come Nick Craver
menzionato in un commento, ci sono molti altri metodi jQuery che possono add
o remove
una classe di elementi. Si dovrà hook
tutti coloro, e cioè:
.addClass()
.removeClass()
.toggleClass()
.removeAttr('class')
.attr('class', 'changed')
se non si sa esattamente quali metodi sono chiamati per manipolare una classe, si dovrebbe preoccuparsi di tutte quelle.
Cosa vuoi fare quando succede? –