0

我试图了解是否有办法在元素的类发生更改时注册事件。

我害怕使用 setInterval 进行检查,因为它可能会导致浏览器卡住。

谢谢。

4

2 回答 2

1

如果您使用的是 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     
});
于 2013-05-07T14:11:56.893 回答
0

您可以做的一件事是创建一个 changeClass 函数:

function changeClass(element, className) {
     element.className = className;
     // Your code to run on the class change
}

然后,当您需要更改元素的类时:

changeClass(myElement, "myClass");
于 2013-05-07T14:11:57.220 回答