使用jQuery设计昂贵的定制事件?
我有一个昂贵的定制事件(由使用jQuery设计昂贵的定制事件?,jquery,Jquery,我有一个昂贵的定制事件(由MutationObserver或轮询生成)。 它类似于 我只想在给定元素上有此事件的订阅者时进行观察/轮询 什么是与jQuery集成的正确方法,以便在订阅/取消订阅自定义事件时收到通知?我认为没有直接的方法 我可以提出的一个解决方案是使用实用方法注册/取消注册处理程序。。。差不多 var MyUtils = (function () { var counter = 0; function handlerPresent() { //do
MutationObserver
或轮询生成)。它类似于 我只想在给定元素上有此事件的订阅者时进行观察/轮询
什么是与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();
}
}
}
})();
好的,我找到了一个解决方案,非常简单。
最低版本如下所示:
$.event.special.myevent = {
setup: function() { expensiveObserve($(this)); },
teardown: function() { expensiveUnobserve($(this)); },
noBubble: true
};
有关完整的API,请参阅