注意动态添加类

如果将一个类动态添加到元素中,是否有监听器可以观察并运行代码? 我在一个WordPress CMS和一个插件我正在使用我们动态添加一个类,我想在发生这种情况时抓住并运行一些自定义代码。

change / onChange似乎不起作用:

$('#test').change(function(){ alert('test'); }); 

是否有另一个我可以添加的侦听器会抓住这个?

我一开始并不认为这很重要,但是在ajax调用之后会添加动态类。 我目前正在尝试使用ajaxComplete()但没有任何运气。

尝试

 $(document).ready(function() { var target = $("#test").get(0); // create an observer instance var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { // do stuff when // `attributes` modified // ieg, alert(mutation.type); target.innerHTML = "class added: " + "" + target.className + ""; }); }); // configuration of the observer: var config = { attributes: true }; // pass in the target node, as well as the observer options observer.observe(target, config); $("#test").addClass("test-1"); // later, you can stop observing // observer.disconnect(); }) 

jsfiddle http://jsfiddle.net/guest271314/35cVL/

请参阅https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

您唯一能做的就是修改插件并在添加类时触发自定义事件。 没有事件可以监听元素属性更改,原因是这些更改始终是代码引发的,因此W3假定自定义实现所需的任何事件。

如果插件的源代码不可用,您唯一的选择就是自己构建一些东西。

我能够使用ajaxComplete()来查找通过ajax添加的动态类。

 $( document ).ajaxComplete(function(){ if ($('#test').hasClass('invalid')){...} } 

对任何感兴趣的人 – 如果我的WPCF7表单无效,我正在使用WordPress的Contact Form 7并使用上面的代码运行自定义jquery。