当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 给自定义对象加上自定义事件的支持的教程

Javascript
JavaScript 语言精粹学习笔记
有关div页面拖动、缩放、关闭、遮罩效果代码
JQuery this 和 $(this) 的区别
JS 时间显示效果代码
jquery 表单进行客户端验证demo
JS 获取span标签中的值的代码 支持ie与firefox
JavaScript 获取用户客户端操作系统版本
可以读取EXCEL文件的js代码
JS去除字符串的空格增强版(可以去除中间的空格)
监控用户是否关闭浏览器的js代码
javascript 继承实现方法
JSON 入门指南 想了解json的朋友可以看下
javascript 函数调用规则
动态表格Table类的实现
JSON 客户端和服务器端的格式转换
jQuery ui1.7 dialog只能弹出一次问题
javascript 遍历验证所有文本框的值
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
javascript 简练的几个函数
csdn 博客中实现运行代码功能实现

Javascript 中的 给自定义对象加上自定义事件的支持的教程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 408 ::
收藏到网摘: n/a

自从我写了几个还可以拿出手的东东之后,自我感觉牛B了许多,还有不少同志围着我,称我为高手,虚容心大大的得到了满足。这些是后话,暂且不表。。。 我一般是不看别人写的代码的,为啥?累!而且这位同志给的还是经过压缩的!汗。。。考我是不是?还有,这位同志也不给个示例的代码,只说是代码没有问题。我努力的试着去“破解”,但是脑细胞死的太快了!在我没有变成白痴之前,我毅然决定,不在往下看下去。不就是给自定的对象加入自定事件的支持吗?我写个示例吧,就算是教程了,如果看不懂,我也没有办法了!我不会傻到给你写好代码,让你拿去卖钱的!
好了,下面是我写的代码,注意看了:
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

示例中,自定义了一个:JCEvent,c1,c2,c3都是这它的实例。
每个实例都有一个oOutline,我一般用它来做为对象的容器。pParent是用来指示自定义对象在哪里显示的,也就相当于占位符吧,如果不指定,就是document.body。
示例中,我定义了三个自定事件:onCreate,onChangeSkin,onClick
onCreate 在 create方法里触发。
onChangeSkin在setSkin方法里触发。
onClick在oOutline.onclick里触发。
调用顺序:
由于onCreate是在create方法里调用的,所以c1.onCreate要在c1.create()之前声明。
事件的参数,见:
this.setSkin = function(pSkin){
var oldSkin = oOutline.className;
oOutline.className = pSkin;
if(typeof this.onChangeSkin == "function")
this.onChangeSkin(oldSkin,pSkin);
}

this.onChangeSkin(oldSkin,pSkin);
这样,你就可以在每个实例里运用oldSkin和newSkin了。
如:
c1.onChangeSkin = function(pOld,pNew){
alert("onChangeSkin事件\n设置c1的皮肤:\n新皮肤:" + pNew + "\n旧皮肤:" + pOld);
}

另外,示例中:
$.$css = function(pKey,pValue,p){
var obj = p ? $.$(p) : this;
obj.style[pKey] = pValue;
obj.$css = $.$css;
return obj;
}
这一段,写成Object.prototype.$css = function(...)是绝对不成功的,至于为什么,就不是这里的讨论范围。

没话可说了,就留空白吧,看不懂的同志,在补补你们的javascript知识。
说点题外话:不要老是整jQuery,prototype,json等。