我试图了解是否有办法在元素的类发生更改时注册事件。
我害怕使用 setInterval 进行检查,因为它可能会导致浏览器卡住。
谢谢。
如果您使用的是 jQuery。这可能是一个解决方案:
https://github.com/aheckmann/jquery.hook/blob/master/jquery.hook.js
我不建议覆盖您不拥有的方法,但可以执行以下操作:
//Overide addClass Method
(function(){
var addClassMethod = jQuery.fn.addClass;
jQuery.fn.addClass = function(){
var result = addClassMethod.apply( this, arguments );
jQuery(this).trigger('classChanged');
return result;
}
})();
$(".yourElemClass").bind('classChanged', function(){
//Your code goes here
});
您可以做的一件事是创建一个 changeClass 函数:
function changeClass(element, className) {
element.className = className;
// Your code to run on the class change
}
然后,当您需要更改元素的类时:
changeClass(myElement, "myClass");