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

できることの 1 つは、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 に答える