类名更改jQuery中的事件

And*_*eas 5 jquery events triggers

有没有办法在更改元素类时在jQuery中触发事件?

例子:

<img class="selected" />
Run Code Online (Sandbox Code Playgroud)

<img class="selected newclass" />
Run Code Online (Sandbox Code Playgroud)

触发事件


<img class="selected" />
Run Code Online (Sandbox Code Playgroud)

<img class="" />
Run Code Online (Sandbox Code Playgroud)

触发事件

jAn*_*ndy 9

您可能能够以一种小巧的方式解决问题.Hook .addClass() &.removeClass()如下所示:

var _addClass    = $.fn.addClass,
    _removeClass = $.fn.removeClass;

$.fn.addClass    = function(){
    // do whatever here
    return _addClass.apply(this, arguments);
}

$.fn.removeClass = function(){
    // do whatever here
    return _removeClass.apply(this, arguments);
}
Run Code Online (Sandbox Code Playgroud)

这样,假设您只对使用jQuery观察元素类更改感兴趣,您可以触发任何代码addingremoving类.再次,就像你使用jQuery一样,这个例子.

当然,你可以hookoverwrite任何javascript函数那样.

正如Nick Craver评论中所提到的,还有其他几种jQuery方法可以addremove元素类.你将需要hook所有这些,即:

.addClass()
.removeClass()
.toggleClass()
.removeAttr('class')
.attr('class', 'changed')
Run Code Online (Sandbox Code Playgroud)

除非您确切地知道调用哪些方法来操作类,否则您将不得不关心所有这些方法.