阻止默認事件行爲和事件冒泡

阻止默認事件行爲和事件冒泡

默認事件:

例如a標籤點擊後會進行跳轉,跳轉的操作就是默認事件

例如submit按鈕點擊回車後會進行表單提交,也屬於默認事件

 

解決方法:

w3c的方法是e.preventDefault()IE則是使用e.returnValue = false;

事件冒泡:

冒泡簡單的舉例來說,兒子知道了一個祕密消息,它告訴了爸爸,爸爸知道了又告訴了爺爺,一級級傳遞從而引起事件的混亂,而阻止冒泡就是不讓兒子告訴爸爸,爸爸自然不會告訴爺爺了。下面的domo就是很好的例子。

 <body>
    <input type="button" id="btn" value="語言" />
    <div id="box"></div>
  </body>


我所實現的效果是:點擊按鈕btnbox顯示,而點擊其他地方則讓box消失。
如果我不阻止冒泡的話,那麼首先btn會觸發點擊時間,讓盒子顯示,但是由於box是包含在document中的,所以會向上冒泡又觸發document的點擊事件,盒子又消失。這個事件的執行順序可以在不同的點擊事件中使用alert來驗證。直接使用oEvent.cancelBubble = true 即可。


僅僅阻止默認事件行爲

jQuery 代碼:

$("a").live("click", function(event){
  event.preventDefault();
});


 

阻止默認事件行爲和事件冒泡,返回 false

jQuery 代碼:

$("a").live("click", function() { return false; });



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章