jquery - 使用 jQuery 设计昂贵的自定义事件?

标签 jquery

我有一个昂贵的自定义事件(由 MutationObserver 或通过轮询生成)。
它类似于 http://meetselva.github.io/attrchange/ .

我只想在给定元素上有此事件的订阅者时进行观察/轮询。

与 jQuery 集成的正确方法是什么,以便我可以在订阅/取消订阅自定义事件时收到通知?

最佳答案

我认为没有直接的方法可以做到这一点......

我可以提出的一个解决方案是使用实用方法来注册/取消注册处理程序......类似于

var MyUtils = (function () {
    var counter = 0;

    function handlerPresent() {
        //do somethig to fire the event
    }
    function handlerRemoved() {
        //do somethig to clear the firing
    }

    return {
        register: function (el, handler) {
            el.on('myevent', handler);
            counter++;
            if (counter == 1) {
                handlerPresent();
            }
        },
        deregister: function (el, handler) {
            el.off('myevent', handler);
            counter--;
            if (counter == 0) {
                handlerRemoved();
            }
        }

    }
})();

关于jquery - 使用 jQuery 设计昂贵的自定义事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483678/

相关文章:

jquery - “这个”引用未定义

javascript - 如何编写模块化的 JavaScript 应用程序?

jquery - 在同一页面中创建 2 个不同的选项卡

ajax - 页面加载时多次 AJAX 调用

javascript - JQuery - $(document).ready() 在元素加载之前执行

javascript - 将点击事件绑定(bind)到jquery.appear

jquery - Bootstrap 日期选择器 Z-index safari

jquery - 尝试通过 AJAX 提交时出现 %5Bobject%20Object%5D(未找到 404)

javascript - 在该元素的单击事件上获取 html 元素的类型 angularJS

javascript - ng-if 更改后重新加载 Jquery