用于更改元素的类属性的Jquery事件

时间:2010-07-23 06:01:33

标签: javascript jquery

我需要在更改元素的class属性时执行JQuery代码。例如,最初元素将是:<div class="my-class">。因此,当一个新类添加到这个div时(即<div class="my-class new-class">,我必须触发一个JQuery代码。

我如何在JQuery中执行此操作?是否存在属性更改事件?

3 个答案:

答案 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以查找更改,并在遇到更改时引发事件。