我的项目中有一个Protoype如下:
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July", "August"],
datasets: [
{
data: [65, 59, 80, 81, 56, 55, 40, -30]
}
]
};
var options = {
scaleBeginAtZero: false
};
var ctx = document.getElementById("myChart").getContext("2d");
var myBarChart = new Chart(ctx).Bar(data, options);
这将启动一个与观察者挂钩的页面,并以定义的间隔从ajax服务获取数据。
我需要的是在this.isInitialized变为true时将事件放在用户可以放置函数的位置。
目前我正在使用它。
(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);
我想要一个当isInitialized为true时用户可以处理的事件,并且可以像这样使用
var page = $("liveDiv").observerPages(2);
page.initialize("http://localhost:5549/GetLatestNews");
page.update("http://localhost:5549/GetLatestNewsData");
我该怎么做?
答案 0 :(得分:0)
解决方案可能与此类似:
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);
}
};
编辑:this->文档