給自定義對(duì)象加上自定義事件的支持的教程
更新時(shí)間:2008年03月13日 21:19:27 作者:
自從我寫了幾個(gè)還可以拿出手的東東之后,自我感覺牛B了許多,還有不少同志圍著我,稱我為高手,虛容心大大的得到了滿足。這些是后話,暫且不表。。。
我一般是不看別人寫的代碼的,為啥?累!而且這位同志給的還是經(jīng)過壓縮的!汗。。。考我是不是?還有,這位同志也不給個(gè)示例的代碼,只說是代碼沒有問題。我努力的試著去“破解”,但是腦細(xì)胞死的太快了!在我沒有變成白癡之前,我毅然決定,不在往下看下去。不就是給自定的對(duì)象加入自定事件的支持嗎?我寫個(gè)示例吧,就算是教程了,如果看不懂,我也沒有辦法了!我不會(huì)傻到給你寫好代碼,讓你拿去賣錢的!
好了,下面是我寫的代碼,注意看了:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
示例中,自定義了一個(gè):JCEvent,c1,c2,c3都是這它的實(shí)例。
每個(gè)實(shí)例都有一個(gè)oOutline,我一般用它來做為對(duì)象的容器。pParent是用來指示自定義對(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ù),見:
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ì)不成功的,至于為什么,就不是這里的討論范圍。
沒話可說了,就留空白吧,看不懂的同志,在補(bǔ)補(bǔ)你們的javascript知識(shí)。
說點(diǎn)題外話:不要老是整jQuery,prototype,json等。
好了,下面是我寫的代碼,注意看了:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
示例中,自定義了一個(gè):JCEvent,c1,c2,c3都是這它的實(shí)例。
每個(gè)實(shí)例都有一個(gè)oOutline,我一般用它來做為對(duì)象的容器。pParent是用來指示自定義對(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ù),見:
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ì)不成功的,至于為什么,就不是這里的討論范圍。
沒話可說了,就留空白吧,看不懂的同志,在補(bǔ)補(bǔ)你們的javascript知識(shí)。
說點(diǎn)題外話:不要老是整jQuery,prototype,json等。
相關(guān)文章
Electron實(shí)現(xiàn)右鍵保存圖片到本地功能
Electron是開發(fā)跨平臺(tái)pc客戶端的利器,最近在使用它時(shí)遇到一個(gè)需要右鍵保存頁(yè)面中圖片的功能,Electron雖使用了Chromium內(nèi)核但卻無法直接使用系統(tǒng)右鍵,需要自定義右鍵菜單,然后添加圖片保存功能,以下是我的使用方法,需要的朋友可以參考下2024-07-07
js 鼠標(biāo)移動(dòng)顯示圖片的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)js鼠標(biāo)移動(dòng)顯示圖片的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12
淺談JavaScript窗體Window.ShowModalDialog使用
這篇文章主要介紹了淺談JavaScript窗體Window.ShowModalDialog使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
WordPress中利用AJAX異步獲取評(píng)論用戶頭像的方法
這篇文章主要介紹了WordPress中利用AJAX異步獲取評(píng)論用戶頭像的方法,文中的例子是輸入郵箱即可獲取頭像,需要的朋友可以參考下2016-01-01
實(shí)現(xiàn)局部遮罩與關(guān)閉原理及代碼
實(shí)現(xiàn)局部遮罩,或許對(duì)某些朋友有著特殊的意義。局部遮罩的原理很簡(jiǎn)單另外加上關(guān)閉就有著另一番的效果,本文將介紹實(shí)現(xiàn)方法,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02
手寫TypeScript?時(shí)很多人常犯的幾個(gè)錯(cuò)誤
這篇文章主要介紹了手寫TypeScript?時(shí)很多人常犯的幾個(gè)錯(cuò)誤,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的抽卡,重要的朋友可以參考一下2022-09-09

