javascript
《精通javascript》5,6章复习(三)
想想還是把標題改成復習好點,因為書中的知識點挺多而且細,不好概括,凡是覺得重要的我都想提一提把code重新打一遍。繼續(二)的內容,接下來該是從DOM刪除一個節點:NodeParent.removeChild(NodeToRemove);
書中removeChild為基礎封裝了兩個函數:
1 //從DOM中移除一個節點 2 function remove(elem) { 3 if(elem) 4 elem.parentNode.removeChild( elem); 5 } 6 7 //清空一個元素的所有子節點 8 function empty(elem) { 9 while(elem.firstChild) { 10 remove(elem.firstChild); 11 } 12 }DOM部分算是復習結束,接下來是Event部分。同樣是javascript開發中一個很核心的東西。說到事件這里有個重要的概念,javascript的事件分兩個階段:capturing and bubbling phase,稱為事件的捕獲和冒泡階段。
來個能說明問題的例子:
1 <div id="content"> 2 <ul class="links"> 3 <li> 4 <!-- 我們點擊了這個鏈接 --> 5 <a href="/">Home</a> 6 </li> 7 <li> 8 <a href="/about/">About</a> 9 </li> 10 </ul> 11 </div>首先是capturing phase:假設我們單擊了一個鏈接,事件的激發順序:
document的click處理事件-->body的click處理事件-->div的click處理事件,以此類推最后到達那個我們點擊的a,然后進入bubbling phase,順序和capturing phase相反。
有時我們要取消事件冒泡:
function stopBubble(e) {
//如果默認傳入了event對象,那么這是非IE瀏覽器
????? if(e && e.stopPropagation )
//因此支持W3C標準的stopPropagation()方法
?????????? e.stopPropagation();
else
??????????????? //否則我們要用IE取消事件冒泡的方式
????????????????window.event.cancelBubble = true;
}
對于瀏覽器的默認行為我們在開發過程中也要注意,比如一個用戶表單,當用戶輸入內容,并按下提交按鈕,如果表單內容所填有誤的話,就應該給用戶指出錯誤,不給予提交。阻止瀏覽器的默認行為:
function stopDefault(e) {
//阻止默認的瀏覽器行為(W3C)
???? if( e && e.preventDefault)?? e.preventDefault();
???? else? window.event.returnValue = false;? //IE中采用的方法
?????return false;
}
接著作者講述了些開發網頁的原則,比如在去掉css和javascript的前提下,看看自己的網頁是否還能良好的導航與瀏覽,你的html標簽是否具有良好的語義,css和javascript有沒有跟HTML DOM進行分離等等..我覺得在CSS方面有本書很不錯,《超越CSS:web設計精髓》。
?
?
轉載于:https://www.cnblogs.com/AndyWithPassion/archive/2010/06/22/professional_js_3.html
總結
以上是生活随笔為你收集整理的《精通javascript》5,6章复习(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2010中国杭州电子信息博览会通讯报道
- 下一篇: 哎~~~又是RichTextBox