天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Javascript學習筆記十一——包裝DOM對象

系列文章導航:

JavaScript學習筆記一——數據類型

JavaScript學習筆記二——函數

JavaScript學習筆記三——作用域

JavaScript學習筆記四——Eval函數

JavaScript學習筆記五——類和對象

JavaScript學習筆記六:prototype的提出

Javascript學習筆記七——原型鏈的原理

Javascript學習筆記八——用JSON做原型

Javascript學習筆記九——prototype封裝繼承

Javascript學習筆記十——網頁運行原理

Javascript學習筆記十一——包裝DOM對象

Javascript學習筆記十三——關于響應事件

Javascript學習筆記十二——Ajax入門


我們在日常的應用中,使用Javascript大多數時間都是在用DOM ,以致于很多人都有一種看法就是DOM==JS,雖然這種看法是錯誤的,但是也可以說明DOM的重要性。

這就導致了我們在寫JS的時候,首先會考慮的是這個方法在頁面上會產生什么樣的變化之類的問題,用架構的思想來說:我們可以說這樣把用戶界面和業務邏輯摻雜到了一起。我們也知道,這樣對于一個稍大的項目來說,滿腦袋都是DIV,都是CSS是做不好東西的。

那么怎么辦?我們還是用對象的角度,從邏輯上來考慮這個問題,讓我們忘記那些DOM對象。

我們來舉一個例子吧:

image

對于某個回復,可能是回復本貼,也可能是舉報。那么暫時讓我們忘記那些DOM對象,讓我們想清楚邏輯:

點擊“回復本貼”時,隱藏舉報窗口,打開回復窗口。

點擊“舉報本貼”時,隱藏回復窗口,打開舉報窗口。

OK,也就是說整個邏輯包含兩個對象,一個是舉報窗口對象,一個是回復窗口對象,每個對象有兩個方法,一個是打開,一個是隱藏。由于某個頁面可能會有很多這樣的對象,每個對象都應該是被創建的一個原型,于是就應該有這樣的代碼:

<script type="text/Javascript">    var Comment = function (x, y) {        var x = x;        var y = y;    };    Comment.prototype.Create = function () {    };    Comment.prototype.Hide = function () {    };    var Report = function (x, y) {        var x = x;        var y = y;    };    Report.prototype.Create = function () {    };    Report.prototype.Hide = function () {    };script>

至于邏輯就是:

buttonCommert.onclick = function () {    GetReport(“id”).Hide();    HideOthers();  //  關閉本頁面其它的回復窗口    var c = new Comment("1","1");    c.Create();}

舉報按鈕也近似如此。

好了大致邏輯如此,我們需要的只是實現原型中的創建和隱藏方法。

var Comment = function (x, y) {    var x = x;    var y = y;    var ConfirmComment = function () {        //Ajax提á交?評à論?    };};Comment.prototype.Create = function () {    var com = document.createElement("div");    document.getElementById("XXXX").appendChild(com);    com.x = x;    com.y = y;    com.style.left = "XXpx";    com.style.top = "YYpx";    var txt = document.createElement("input");    txt.nodeType = "text";    com.appendChild(txt);    var btn = document.createElement("input");    btn.nodeType = "button";    btn.onclick = ConfirmComment();    com.appendChild(btn);};

以上皆為偽代碼,只是提供一種封裝DOM的思路。

在工程中,將DOM對象包裝成符合我們自己業務邏輯的Javascript對象是一種非常好的做法,這也是企業JS庫形成的一個過程。

說句極端話,如果足夠成熟后,也許頁面中寫JS看不到DOM,而皆為包裝好的JS對象,笑談爾….

it知識庫Javascript學習筆記十一——包裝DOM對象,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 五月丁香婷姐色 | 亚洲 欧美 清纯 校园 另类 | 超污视频带污疼免费视频 | 內射XXX韩国在线观看 | 色综合伊人色综合网站中国 | 丰满少妇69激情啪啪无码 | 国产中文字幕乱码一区 | 特黄特色大片免费播放器9 特黄特黄aaaa级毛片免费看 | 少妇连续高潮抽搐痉挛昏厥 | 国产午夜不卡在线观看视频666 | 久9青青cao精品视频在线 | 啊灬啊别停灬用力啊老师 | 久久热最新网站获取3 | 国产激情视频在线播放 | 蜜桃成熟时33D在线嘟嘟网 | 无码骚夜夜精品 | 午夜亚洲WWW湿好爽 午夜亚洲WWW湿好大 | 色青青草原桃花久久综合 | 蜜桃婷婷狠狠久久综合9色 蜜桃视频一区二区 | 日本一本免费线观看视频 | 四虎国产精品永久一区高清 | 亚洲免费国产 | 语文老师扒开胸罩喂我奶 | jiz在线播放jizijzz | 国产三级在线观看免费 | xxxx免费观看 | 在线观看国产精美视频 | 24小时日本在线 | 亚洲性夜色噜噜噜网站2258KK | 国产看黄网站又黄又爽又色 | 秋霞在线观看视频一区二区三区 | 把腿张开再深点好爽宝贝 | 免费人成在线观看视频不卡 | 6080yy 久久 亚洲 日本 | 国产成人免费全部网站 | 岛国片在线免费观看 | 美女网站免费久久久久久久 | 久久人妻AV一区二区软件 | 无码中文字幕热热久久 | 亚洲成片在线看 | 国产精品高潮呻吟AV久久96 |