元素特定类更改时的jQuery fire函数

时间:2014-12-05 13:01:54

标签: javascript jquery javascript-events addclass

我需要在按钮上添加特定类时触发事件,但我不知道如何让它听取类添加事件。

我有这样的事情:

<script type="text/javascript">   

$(document).ready(function() {


    $(id_element).addClass("active");

     //this function will fire on add "active" class to "id_button" element
     function fireOnActiveClass() {
        //do something
     }


} 

</script>

我无法触及代码$(id_element).addClass("active");,原因更多。

目前我使用的是jQuery 1.7.2

您能告诉我我需要知道的方式或内容吗?

5 个答案:

答案 0 :(得分:1)

您正在修改代码中的控件类。那么为什么不在改变课程时简单地点击按钮?

$(id_element).addClass("active");
$(id_button).click();

$(id_button).click(function () {
     if ($(this).hasClass) {
     //do something

     }
 });

答案 1 :(得分:1)

课程更改时不会引发任何事件。另一种方法是在以编程方式更改类时手动引发事件:

$(document).ready(function() {
    $(id_element).addClass("active").trigger('classChange');
    $(id_element).on('classChange', function() {
         // do stuff
    });
});

答案 2 :(得分:0)

另一种方法是在添加类之后立即调用函数:

$.fn.classAdded = function() {
    var $button = $(this);
    if($button.hasClass('id_button')) {
        // ...
    }
    return $button;
}

$(id_element).addClass("active").classAdded();

答案 3 :(得分:0)

我找到了使用这个jQuery插件的解决方案:http://meetselva.github.io/attrchange/

答案 4 :(得分:0)

这个jQuery插件可以提供任何帮助吗?

https://github.com/tormjens/jquery-dom-router

您可以使用更改默认元素 $.DOMRouter.defaults.element = '#element'; 在插入初始化之前。