JavaScript 阻止事件冒泡傳遞

來源:互聯網
上載者:User

關鍵詞:

1、cancelBubble(HTML DOM Event 對象屬性) :如果事件控制代碼想阻止事件傳播到包容對象,必須把該屬性設為 true。

2、stopPropagation(HTML DOM Event 對象方法):終止事件在傳播過程的捕獲、目標處理或起泡階段進一步傳播。調用該方法後,該節點上處理該事件的處理常式將被調用,事件不再被指派到其他節點。

3、 preventDefault(HTML DOM Event 對象方法)通知瀏覽器不要執行與事件關聯的預設動作。

 

好了,測試代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /> <head><br /> <title> JavaScript阻止時間冒泡傳遞測試 </title><br /> <meta name="author" content="http://blog.csdn.net/xxd851116" /><br /> <mce:style type="text/css"><!--<br />div {padding:10px; border:1px solid #EEE;margin:10px;}</p><p>--></mce:style><style type="text/css" mce_bogus="1">div {padding:10px; border:1px solid #EEE;margin:10px;}<br /> </style><br /> </head><br /><body onclick="alert('Body Click');"><br />這是頂層Body<br /><div onclick="alert('Div 1 Click');"><br /> 這是第1層<br /> <div onclick="alert('Div 2A Click');">這是第2層A<br /><input type="button" onclick="alert('Button Click');stopBubble(event)" value="點擊測試時間冒泡(阻止)!" /><br /> </div><br /> <div onclick="alert('Div 2B Click');">這是第2層B<br /><input type="button" onclick="alert('Button Click');" value="點擊測試時間冒泡(未阻止)!" /><br /> </div><br /></div><br /><mce:script type="text/javascript"><!--<br />var all = document.getElementsByTagName("*");<br />for (var i = 0; i < all.length; i++) {<br /> //監聽使用者滑鼠,當移動到元素上時<br /> //為元素加上紅色邊框<br /> all[i].onmouseover = function(e) {<br /> this.style.border="1px solid red";<br /> stopBubble(e);<br /> }<br /> //檢查使用者滑鼠,當移開元素時<br /> //刪除我們加上的邊框<br /> all[i].onmouseout = function(e) {<br /> this.style.border = "1px solid #EEE";<br /> stopBubble(e);<br /> }<br />}<br />function stopBubble(e) {<br />var e = e ? e : window.event;<br />if (window.event) { // IE<br />e.cancelBubble = true;<br />} else { // FF<br />//e.preventDefault();<br />e.stopPropagation();<br />}<br />}<br />// --></mce:script><br /> </body><br /></html><br />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.