Firing events on CSS class changes in jQuery

后端 未结 13 1137
天涯浪人
天涯浪人 2020-11-22 04:45

How can I fire an event if a CSS class is added or changed using jQuery? Does changing of a CSS class fire the jQuery change() event?

13条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-22 05:10

    var timeout_check_change_class;
    
    function check_change_class( selector )
    {
        $(selector).each(function(index, el) {
            var data_old_class = $(el).attr('data-old-class');
            if (typeof data_old_class !== typeof undefined && data_old_class !== false) 
            {
    
                if( data_old_class != $(el).attr('class') )
                {
                    $(el).trigger('change_class');
                }
            }
    
            $(el).attr('data-old-class', $(el).attr('class') );
    
        });
    
        clearTimeout( timeout_check_change_class );
        timeout_check_change_class = setTimeout(check_change_class, 10, selector);
    }
    check_change_class( '.breakpoint' );
    
    
    $('.breakpoint').on('change_class', function(event) {
        console.log('haschange');
    });
    

提交回复
热议问题