在Javascript原型中为用户创建函数/事件

在Javascript原型中为用户创建函数/事件,javascript,jquery,Javascript,Jquery,我的项目中有一个原型,如下所示: (function($) { $.fn.observerPages = function(pageNo) { return new ObserverPage($(this), pageNo); }; function ObserverPage(Parent, pageNo) { try { this.parent = Parent; this.isInitialized = fa

我的项目中有一个原型,如下所示:

(function($) {

    $.fn.observerPages = function(pageNo) {
      return new ObserverPage($(this), pageNo);
    };

    function ObserverPage(Parent, pageNo) {
      try {
        this.parent = Parent;
        this.isInitialized = false;
        this.timer = -1;
        this.highChart = [];
      } catch (e) {

      }
    }
    ObserverPage.prototype = {
      initialize: function(url) {
        isInitialized = true;
      },
      update: function(controllerurl) {
        if (isInitialized == true) {
            //Update
          }
        },
        startTimer: function(url, interval) {},
        stopTimer: function() {}
      };
    })(jQuery);
这将启动一个与观察者挂钩的页面,并以定义的间隔从ajax服务获取数据

我需要的是在其中放置一个事件,用户可以在this.isInitialized变为true时放置一个函数

目前我是这样使用它的

var page = $("liveDiv").observerPages(2);
page.initialize("http://localhost:5549/GetLatestNews");
page.update("http://localhost:5549/GetLatestNewsData");
我想要一个事件,当isInitialized变为true时,用户可以处理该事件,并且可以像这样使用它

page.onInitialize(function(){
   //User writes his function
});

我如何才能做到这一点?

解决方案可能与此类似:

var event = new Event('pageinit');
ObserverPage.prototype = {
  initialize: function(url) {
    isInitialized = true;
  },
  update: function(controllerurl) {
    if (isInitialized == true) {
      document.dispatchEvent(event);
    }
  },
  startTimer: function(url, interval) {},
  stopTimer: function() {},
  onInitialize: function(callback)
  {
    document.addEventListener('pageinit', callback, false);
  }
};

编辑:此->文档

这可以使用和使用来完成。我按照您所说的做了,它给出了TypeError:this.addEventListener不是此try with document对象的函数。