星期五, 12月 14, 2007
星期五, 12月 14, 2007

http://rhinohorns.blogspot.com/2007/12/jquery-plugin-events-namespace.html
製做 jQuery Plugin,覆寫 Events 應儘量採用 Namespace

做 jQuery 的 Plugin 時,有時會使用成套函式的設計,也就是包含了「啟用此 Plugin」函式及「停用此 Plugin」的函式。

例如部落格上常會見到的「繼續閱讀」,或許有些瀏覽者不適應這項功能。假設它是一個成套 Plugin,此時使用此 Plugin 的網頁設計者就可以在頁面放上鉤選是否使用「繼續閱讀」的設定介面,如瀏覽者鉤選了不使用,則呼叫「停用此 Plugin」函式直接停用即可。

啟用/停用的 Plugin 程式碼通常會像如下的撰寫方式,「setOverFlowHidden」為啟用,「unSetOverFlowHidden」為停用。

看似沒什麼問題,不過當頁面中有使用其它 jQuery Plugin,並也有覆寫「click」事件時,停用的程式句「.unbind("click")」將會讓引入不同 Plugin 的同個物件「click」失去效果而影響到其它 Plugin 的運作。所以此刻我們可以採用 Namespace 的撰寫方法來避免憾事發生。

程式碼改寫如下,將原本的「click」事件另加上我們易辯識的 Namespace 成為「click.setOverflowH_sh」,這樣就可行了。

0 意見: