国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

事件冒泡與默認行為

2019-11-14 22:50:46
字體:
來源:轉載
供稿:網友
事件冒泡與默認行為

Event

在觸發DOM上某個事件時,會產生一個事件對象event,這個對象包含著所有事件有關的信息(導致事件的元素、事件的類型、與特定事件相關的信息)

所有瀏覽器都支持Event對象,但支持方式不同

IE中的事件對象:window.event

/*

封裝Event對象

IE:window.event

*/

functiongetEvent(event){

returnevent?event:window.event;

}

事件冒泡

什么是事件冒泡

即事件開始時由最具體的元素(文檔中嵌套最深的那個元素)接收,然后逐級向上傳播到較不為具體的節點

所有瀏覽器都支持事件冒泡

<!DOCTYPEhtml>

<html>

<head>

<metacharset="utf-8">

<metahttp-equiv="X-UA-Compatible"content="IE=edge,Chrome=1">

<title>事件冒泡</title>

<metaname="descrWords"content="">

<linkhref=""rel="stylesheet">

<style>

.one{

width:400px;

height:100px;

border:1pxsolid#333;

}

.two{

height:35px;

line-height:35px;

padding-left:15px;

border:1pxsolidred;

}

.three{

padding:10px;

background-color:green;

border:1pxsolid#999;

cursor:pointer;

}

</style>

<scriptsrc="http://code.jquery.com/jquery-1.11.2.min.js"></script>

<script>

$(function(){

$(".one").click(function(event){

alert($(this).text());

});

$(".two").click(function(event){

alert($(this).text());

});

$(".three").click(function(event){

alert($(this).text());

});

});

</script>

</head>

<body>

<divclass="one">

我是one(div)

<pclass="two">

我是two(p)

<spanclass="three">我是three(span)</span>

</p>

</div>

</body>

</html>

當在span、p、div元素上各綁定一個click事件,當單擊span元素時,會依次觸發三個事件,即span、p、div元素上的click事件,這就是事件冒泡,按照DOM層次結構像水泡一樣不斷向上直至頂端

阻止事件冒泡

DOM中提供stopPRopagation()方法,但IE不支持,使用event對象在事件函數中調用就行

IE中提供的是,cancelBubble屬性,默認為false,當它設置為true時,就是阻止事件冒泡,也是用event對象在事件函數中調用

/*

封裝事件冒泡函數:

document.all:判斷瀏覽器是否是IE

IE:cancelBubble

Firefox:stopPropagation

*/

functionstopPropagation(e){

vare=window.event||e;

if(document.all){

e.cancelBubble=true;

}else{

e.stopPropagation();

}

}

jQuery中提供了stopPropagation()方法來停止事件冒泡,當需要時,只需用用event對象來調用就行,即event.stopPropagation();

默認行為

什么是默認行為

網頁元素,都有自己的默認行為,例如,單擊超鏈接會跳轉...

阻止默認行為

DOM中提供preventDefault()方法來取消事件默認行為,但是只有當cancelable屬性設置為true的事件,才可以使用preventDefault()來取消事件默認行為,使用event對象在事件函數中調用就行

IE中提供的是returnValue屬性,默認為true,當它設置為false時,就是取消事件默認行為,也是用event對象在事件函數中調用

復制代碼

/*

封裝阻止元素的默認行為函數

IE:returnValue

DOM:preventDefault

*/

functionpreventDefaultAction(event){

varevent=window.event||event;

if(document.all){

//支持IE

event.returnValue=false;

}else{

//IE不支持

event.preventDefault();

}

}

復制代碼jQuery中提供了preventDefault()方法來阻止元素的默認行為,只需要用event對象來調用就好,即event.preventDefault()

如果想同時對事件對象停止冒泡和默認行為,可以在事件處理函數中返回false。這是對事件對象同時調用stopPropagation()方法和preventDefault()方法的一種簡寫方式


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜泉县| 旺苍县| 哈密市| 辽阳市| 巩义市| 沾益县| 南昌市| 桃园县| 建昌县| 嘉善县| 云梦县| 香港 | 松滋市| 鞍山市| 靖江市| 涡阳县| 调兵山市| 西乌| 武鸣县| 新化县| 桐城市| 保德县| 鄂温| 永清县| 新宁县| 三都| 南昌县| 寻乌县| 南充市| 唐山市| 铜陵市| 新昌县| 新建县| 潞城市| 眉山市| 舟山市| 汉中市| 南阳市| 峨眉山市| 水城县| 水城县|