持续使用jquery检查元素的样式

持续使用jquery检查元素的样式,jquery,Jquery,我需要这样的代码 if($('#someElement').hasClass('test')) { ... } 但我需要坚持检查,而不是在一个特定的位置。 我的问题是像bind这样的函数可以帮助我,或者我必须使用interval进行检查?您可以绑定一个自定义事件,然后在更改元素的类时触发,或者您可以覆盖在其中调用函数的addClass jQuery方法,这样做: (function(){ // Your base, I'm in it! var originalAddClassMethod =

我需要这样的代码

if($('#someElement').hasClass('test'))
{
...
}
但我需要坚持检查,而不是在一个特定的位置。
我的问题是像bind这样的函数可以帮助我,或者我必须使用interval进行检查?

您可以绑定一个自定义事件,然后在更改元素的类时触发,或者您可以覆盖在其中调用函数的addClass jQuery方法,这样做:

(function(){
// Your base, I'm in it!
var originalAddClassMethod = jQuery.fn.addClass;

jQuery.fn.addClass = function(){
    // Execute the original method.
    var result = originalAddClassMethod.apply( this, arguments );

    // call your function
    // this gets called everytime you use the addClass method
    myfunction();

    // return the original result
    return result;
}
})();
我建议不要使用最后一种解决方案,因为这是一种不好的做法,但如果你愿意,你可以使用它


(上面的代码取自此答案:。您可以在那里检查。)

如果您想一直这样检查。您将需要使用一个间隔。绑定只能用于绑定事件。如
单击
鼠标指针

如果您想知道一个元素何时获得一个类。您应该使用以下内容:

setInterval($.proxy(function(){
    if( this.hasClass("test") && !this.data("classAdded") )
    {
        this.data("classAdded", true);
        // Class added only triggers once.
    }
}, $("#el")), 50);

如果不是时间间隔,那么什么情况最适合检查?我们不知道您代码的其他部分,因此很难看到connection.Ofc。这是因为该代码每X毫秒执行一次。但用户不会注意到这较少的代码。但我们不知道这门课是怎么来的。如果它添加了一个函数,您可以将jQuery函数更改为有一个额外的回调。或者在使用某个函数后调用该函数。例如
addClass
。你能告诉我它的效果是什么吗?因为这是javascript代码,它在客户端运行-间隔=1s当前它每50MS检查
$(“#el”)
是否包含类
测试
,一旦有了该类,就会设置一个
数据
属性。代码执行一次(无代码)。