亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Javascript中的事件冒泡

標簽:
JavaScript

这是一个基础性的文章,使用Javascript观察DOM中的事件冒泡机制,并介绍如何阻止默认行为和如何组织事件冒泡的方法。

1. 第一个例子可以在Firefox下运行

复制代码

<div id="container1" onclick="alert('click container1');">
    <div id="container2" onclick="alert('click container2');">
        <a >Google</a>
    </div>
</div>复制代码

 

复制代码

function fn1(event) {
    alert('click google');
}

function fn2(event) {
    alert('click google');
    event.preventDefault();
}

function fn3(event) {
    alert('click google');
    event.stopPropagation();
}

function fn4(event) {
    alert('click google');
    event.preventDefault();
    event.stopPropagation();
}复制代码

 

点击第一个链接,alert_google -> alert_container2 -> alert_container1 -> open_google_page

点击第二个链接,alert_google -> alert_container2 -> alert_container1

点击第三个链接,alert_google -> open_google_page

点击第四个链接,alert_google

 

可以看到,事件冒泡是从最初引发事件的HTML节点开始,一步步向上引发父节点的相同事件。

在Firefox中,我们可以通过 preventDefault 函数阻止默认的行为(比如这个例子中,点击链接的默认行为是打开链接地址)

通过 stopPropagation 函数阻止事件冒泡。

 

相同的过程在IE下的实现有点不同,一是事件对象(event)在IE下是作为 window 对象的一个属性,

二是阻止事件的默认行为或阻止事件冒泡的做法也有所不同,请看:

2. 观察IE下的事件冒泡

 

复制代码

<div id="container1_ie" onclick="alert('click container1');">
    <div id="container2_ie" onclick="alert('click container2');">
        <a >Google</a>
    </div>
</div>复制代码

 

复制代码

function fn1_ie() {
    alert('click google');
}

function fn2_ie() {
    alert('click google');
    event.returnValue = false;
}

function fn3_ie() {
    alert('click google');
    event.cancelBubble = true;
}

function fn4_ie() {
    alert('click google');
    event.returnValue = false;
    event.cancelBubble = true;
}复制代码

 

同样:

点击第一个链接,alert_google -> alert_container2 -> alert_container1 -> open_google_page

点击第二个链接,alert_google -> alert_container2 -> alert_container1

点击第三个链接,alert_google -> open_google_page

点击第四个链接,alert_google

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消