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)
触发事件
您可能能够以一种小巧的方式解决问题.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观察元素类更改感兴趣,您可以触发任何代码adding
或removing
类.再次,就像你使用jQuery一样,这个例子.
当然,你可以hook
和overwrite
任何javascript函数那样.
正如Nick Craver
评论中所提到的,还有其他几种jQuery方法可以add
或remove
元素类.你将需要hook
所有这些,即:
.addClass()
.removeClass()
.toggleClass()
.removeAttr('class')
.attr('class', 'changed')
Run Code Online (Sandbox Code Playgroud)
除非您确切地知道调用哪些方法来操作类,否则您将不得不关心所有这些方法.