var Douban=new Object();//定义Douban为Object
//定义方法EventM..用来生成再生一个它的子对象
Douban.EventMonitor = function(){
this.listeners = new Object();
}
//给EventMonitor新增broadcast功能
Douban.EventMonitor.prototype.broadcast=function(widgetObj, msg, data){
var lst = this.listeners[msg]; if(lst != null){
for(var o in lst){
lst[o](widgetObj, data);
}
}
}
Douban.EventMonitor.prototype.subscribe=function(msg, callback){
var lst = this.listeners[msg];
if (lst) {
lst.push(callback);
} else {
this.listeners[msg] = [callback];
}
}
Douban.EventMonitor.prototype.unsubscribe=function(msg, callback){
var lst = this.listener[msg];
if (lst != null){
lst = lst.filter(function(ele, index, arr){return ele!=callback;});
}
}// Page scope event-monitor obj.监视页面范围对象
var event_monitor = new Douban.EventMonitor();function load_event_monitor(root) {
var re = /a_(\w+)/;
var fns = {};
$(".j", root).each(function(i) {
var m = re.exec(this.className);
if (m) {
var f = fns[m[1]];
if (!f) {
f = eval("Douban.init_"+m[1]);
fns[m[1]] = f;
}
f && f(this);
}
});
}$(function() {
load_event_monitor(document);
});
不知道完成什么功能,请高人帮俺完善.
解决方案 »
- .replace(/<br>/ig,"\r\n");怎么直接输出成了文体rn?
- history.back()后如何让页面不显示缓存数据
- 我郁闷:火狐浏览器居然如此垃圾,在子DIV中居然不能显示“光标”,望各位前辈协助解决,提供建议,小生谢谢了!
- js怎么样分页?
- 赠分40!!如何把单元格变色?
- 怎么计算一个hex的颜色的20%亮度的颜色?
- ie提示有错误,对象不支持此属性和方法 document. Write("这是电脑报网络学校");
- 怎么调用最新的JS??
- 如何让客户点击一个链接前探出一个对话框让客户确认的?
- 求救:身份证验证问题
- javascript怎么屏蔽单引号
- 求:表单通用验证 思路 或者说算法
...
}// 订阅事件
event_monitor.subscribe("event_type", eventHandler);// 发布事件
event_monitor.broadcast("event_type", obj, data);