在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对象的函数。