我需要在更改元素的class属性时执行JQuery代码。例如,最初元素将是:<div class="my-class">
。因此,当一个新类添加到这个div时(即<div class="my-class new-class">
,我必须触发一个JQuery代码。
我如何在JQuery中执行此操作?是否存在属性更改事件?
答案 0 :(得分:2)
如果您完全无法告知外部函数何时更改类(例如,自定义事件),则必须执行以下操作:
$(document).ready(function(){
// Cache the required element
window.elementInQuestion = $('#element-that-changes-class');
function checkClass(){
if (window.elementInQuestion.hasClass('new-class')) {
// Trigger a custom event
$(document).trigger('elementHasClass');
// If you need the check only until the first time the class appears
// you can cancel further checks here
clearInterval(window.classCheckerInterval);
}
}
// Check if an element has class every once in a while
window.classCheckerInterval = setInterval(checkClass, 100);
$(document).bind('elementHasClass', function(){
// Your handler here
});
});
答案 1 :(得分:0)
不能只是将功能绑定到更改类的函数吗?
答案 2 :(得分:0)
没有跨浏览器节点更改事件。
一种选择可能是使用LiveQuery插件。它将定期扫描dom以查找更改,并在遇到更改时引发事件。