《精通javascript》5,6章複習(三)

來源:互聯網
上載者:User

  想想還是把標題改成複習好點,因為書中的知識點挺多而且細,不好概括,凡是覺得重要的我都想提一提把code重新打一遍。繼續(二)的內容,接下來該是從DOM刪除一個節點:NodeParent.removeChild(NodeToRemove);

書中removeChild為基礎封裝了兩個函數:

//從DOM中移除一個節點

function remove(elem) {

  if(elem)  elem.parentNode.removeChild( elem);

}

//清空一個元素的所有子節點

function empty(elem) {

  while(elem.firstChild) {

       remove(elem.firstChild);

      }

}

DOM部分算是複習結束,接下來是Event部分。同樣是javascript開發中一個很核心的東西。說到事件這裡有個重要的概念,javascript的事件分兩個階段:capturing and bubbling phase,稱為事件的捕獲和冒泡階段。

來個能說明問題的例子:

<body>

  <div id="content">

        <ul class="links">

             <li>

                  <a href="/">Home</a> //我們點擊了這個連結

                 </li>

                 <li><a href="/about/">About</a></li>

            </ul>

      </div>

</body>

首先是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設計精髓》。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.