|
好了,下面是我寫的代碼,注意看了:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
示例中,自定義了一個(gè):JCEvent,c1,c2,c3都是這它的實(shí)例。
每個(gè)實(shí)例都有一個(gè)oOutline,我一般用它來(lái)做為對(duì)象的容器。pParent是用來(lái)指示自定義對(duì)象在哪里顯示的,也就相當(dāng)于占位符吧,如果不指定,就是document.body。
示例中,我定義了三個(gè)自定事件:onCreate,onChangeSkin,onClick
onCreate 在 create方法里觸發(fā)。
onChangeSkin在setSkin方法里觸發(fā)。
onClick在oOutline.onclick里觸發(fā)。
調(diào)用順序:
由于onCreate是在create方法里調(diào)用的,所以c1.onCreate要在c1.create()之前聲明。
事件的參數(shù),見(jiàn):
this.setSkin = function(pSkin){
var oldSkin = oOutline.className;
oOutline.className = pSkin;
if(typeof this.onChangeSkin == "function")
this.onChangeSkin(oldSkin,pSkin);
}
this.onChangeSkin(oldSkin,pSkin);
這樣,你就可以在每個(gè)實(shí)例里運(yùn)用oldSkin和newSkin了。
如:
c1.onChangeSkin = function(pOld,pNew){
alert("onChangeSkin事件/n設(shè)置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(...)是絕對(duì)不成功的,至于為什么,就不是這里的討論范圍。
沒(méi)話可說(shuō)了,就留空白吧,看不懂的同志,在補(bǔ)補(bǔ)你們的Javascript知識(shí)。
說(shuō)點(diǎn)題外話:不要老是整jQuery,prototype,json等。
JavaScript技術(shù):給自定義對(duì)象加上自定義事件的支持的教程,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。