2013-05-07 55 views
0

我试图了解是否有办法在元素的类更改时注册事件。Javascript - 有没有办法在班级变更上注册活动?

我害怕使用setInterval进行检查,导致浏览器卡住。

谢谢。

+0

嗯,动态的你要改变'class',所以调用事件到相同的方法。我看不到原因 – 2013-05-07 14:07:34

+0

不,没有“onclasschange”事件。你为什么想这样做?你想做什么?更好的方法是在类更改时自己调用函数*(如每次更改类时添加一行新的代码)。 – 2013-05-07 14:08:09

+1

先前提问:http://stackoverflow.com/questions/1950038/jquery-fire-event-if-css-class-changed – Pete 2013-05-07 14:08:29

回答

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  
}); 
0

有一件事你可以做是创建一个changeClass功能:

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

然后,当你需要改变只是一个元素的类:

changeClass(myElement, "myClass"); 
相关问题