最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于event.cancelBubble和event.stopPropagation()的區(qū)別介紹

 更新時(shí)間:2011年12月11日 22:57:30   作者:  
cancelBubble用于ie的阻止冒泡事件,event.stopPropagation()用于firefox和chrome等其他瀏覽器的疑惑介紹。
首先我在網(wǎng)上看到不少文章大體上分為兩個(gè)(不正確)觀點(diǎn):
1. cancelBubble用于ie的阻止冒泡事件,event.stopPropagation()用于firefox和chrome等其他瀏覽器。
先不講上面是對(duì)是錯(cuò)
先看一個(gè)例子:(測(cè)試環(huán)境:chrom5.0.275.7, moz3.6.4, opera10.53, ie6,7,8)
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>無標(biāo)題頁</title>
</head>
<body onclick="alert('body');">
<input id="Button1" type="button" value="button" onclick="clickBtn(event)" />
<script language="javascript" type="text/javascript">
function clickBtn(event)
{
event=event?event:window.event;
event.cancelBubble=true;
alert(event.cancelBubble);
}
</script>
</body>
</html>

經(jīng)過測(cè)試:
a,chrom5.0.275.7, opera10.53, ie6,7,8在這幾個(gè)瀏覽器中 , cancelBubble是有效的,并且可以阻止事件冒泡,使body的onclick不能觸發(fā)。只觸發(fā)button的click
alert(event.cancelBubble);輸出結(jié)果true
b,在 moz3.6.4版本內(nèi),是不能阻止body的onclick的,但是alert(event.cancelBubble);輸出結(jié)果仍然是true ,我想這應(yīng)該是event.cancelBubble只是給event添加一個(gè)屬性,并且賦值為true;
當(dāng)把js代碼改成這樣時(shí):
復(fù)制代碼 代碼如下:

<script language="javascript" type="text/javascript">
function clickBtn(event)
{
event=event?event:window.event;
event.stopPropagation();
alert("123");
}
</script>

即可有效阻止。當(dāng)然在chrome,opera中的 event.stopPropagation();也是有效的,
結(jié)論一:以上說明 event.cancelBubble在新版本chrome,opera瀏覽器中已經(jīng)支持,就差moz了,其實(shí)個(gè)人認(rèn)為event.cancelBubble比event.stopPropagation()更好,不僅從英文意思上。所以希望moz再發(fā)新版本 也支持。這樣就兼容了
2.還有就是經(jīng)??吹年P(guān)于事件順序的問題:
不完全準(zhǔn)確的結(jié)論(自認(rèn)為)
ie:源事件元素->>父級(jí)元素事件->>body-->>document
moz:等其他瀏覽器與上面相反
先看一個(gè)例子:
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>無標(biāo)題頁</title>
</head>
<body onclick="alert('body');">
<div onclick="clickBtn(event)" style="width:100px;height:100px; background:#666;">
<input id="Button1" type="button" value="button" onclick="alert('btn');" />
</div>
<script language="javascript" type="text/javascript">
function clickBtn(event)
{
event=event?event:window.event;
event.stopPropagation();
alert("123");
}
</script>
</body>
</html>

如果按照上面的觀點(diǎn) 我現(xiàn)在點(diǎn)擊button 事件從 body---->div----->button,,,,那么就是 先alertbody然后再觸發(fā)div彈出123,由于阻止冒泡,所以button的click不會(huì)觸發(fā)。
但經(jīng)過我們測(cè)試。moz還是按照由內(nèi)向外觸發(fā)。正確的執(zhí)行alert("btn")--->>alert("123")----阻止冒泡 不觸發(fā)body的click事件
到這你是不是會(huì)懷疑上面不正確,不過上面的講法對(duì)用addListenter和attachEvent添加的事件是正確的()。如:
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>無標(biāo)題頁</title>
</head>
<body>
<ul id='ul'>
<li id='li1'>List Item1</li>
<li id='li2'>List Item2</li>
</ul>
<script language="javascript" type="text/javascript">
function init(){
if(!!document.all){
document.getElementById('li1').attachEvent('onclick', function(event){
alert('li1');
})
document.getElementById('li2').attachEvent('onclick', function(event){
alert('li2');
})
document.getElementById('ul').attachEvent('onclick', function(event){
alert('ul');
//event.cancelBubble = true;
alert(event.stopPropagation);
});
}else{
document.getElementById('li1').addEventListener('click', function(event){
alert('li1');
}, true)
document.getElementById('li2').addEventListener('click', function(event){
alert('li2');
}, true)
document.getElementById('ul').addEventListener('click', function(event){
event=event?event:window.event;
event.stopPropagation();
alert('ul');
}, true);
}
}
init();
</script>
</body>
</html>

用這種方法 是符合的。執(zhí)行結(jié)果是觸發(fā)ul的click事件然后由于阻止了冒泡所以此時(shí)你點(diǎn)擊li時(shí),其本身的click事件不觸發(fā)。(順便說一句,用這種動(dòng)態(tài)添加事件的方法,好像 event.cancelBubble在moz中也有效了不過在chrome和moz中有區(qū)別)

相關(guān)文章

  • jQuery 3.0中存在問題及解決辦法

    jQuery 3.0中存在問題及解決辦法

    這篇文章主要介紹了jQuery 3.0中存在問題及解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • jQuery提示插件alertify使用指南

    jQuery提示插件alertify使用指南

    alertifyjs是一個(gè)非侵入式,可定制的JavaScript通知組件。包括可定制的對(duì)話框,和右下角消息彈出框。完全可定制的警報(bào),確認(rèn)和提示對(duì)話框、完全自定義的通知系統(tǒng)、回調(diào)參數(shù)處理包括“確定“和”取消“按鈕的點(diǎn)擊、允許對(duì)話框排隊(duì)
    2015-04-04
  • jQuery中ajax的具體使用

    jQuery中ajax的具體使用

    本文將介紹jQuery中如何使用Ajax以及通過代碼詳解其使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-10-10
  • jquery添加div實(shí)現(xiàn)消息聊天框

    jquery添加div實(shí)現(xiàn)消息聊天框

    這篇文章主要為大家詳細(xì)介紹了jquery添加div實(shí)現(xiàn)消息聊天框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 自動(dòng)設(shè)置iframe大小的jQuery代碼

    自動(dòng)設(shè)置iframe大小的jQuery代碼

    自動(dòng)設(shè)置iframe的寬度在應(yīng)用中還是比較廣泛的,本文使用jquery實(shí)現(xiàn)一下,感興趣的朋友可以參考下
    2013-09-09
  • jQuery插件zTree實(shí)現(xiàn)獲取一級(jí)節(jié)點(diǎn)數(shù)據(jù)的方法

    jQuery插件zTree實(shí)現(xiàn)獲取一級(jí)節(jié)點(diǎn)數(shù)據(jù)的方法

    這篇文章主要介紹了jQuery插件zTree實(shí)現(xiàn)獲取一級(jí)節(jié)點(diǎn)數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了jQuery插件zTree針對(duì)節(jié)點(diǎn)的遍歷與獲取操作相關(guān)技巧,需要的朋友可以參考下
    2017-03-03
  • 使用jquery為table動(dòng)態(tài)添加行的實(shí)現(xiàn)代碼

    使用jquery為table動(dòng)態(tài)添加行的實(shí)現(xiàn)代碼

    最近,有需要做一個(gè)動(dòng)態(tài)的給table,添加行,用了點(diǎn)時(shí)間,算是做成了。已測(cè)試過,但如果發(fā)現(xiàn)有什么bug,可以留言,歡迎拍磚。大家一起進(jìn)步。
    2011-03-03
  • select標(biāo)簽?zāi)M/美化方法采用JS插件

    select標(biāo)簽?zāi)M/美化方法采用JS插件

    select標(biāo)簽的外觀問題很惱人,各個(gè)瀏覽器都不一致,單單就IE,一個(gè)版本就一個(gè)長相,還不能用CSS修飾,接下來將本人對(duì)select的美化方法共享出來,感興趣的朋友可以參考下
    2013-04-04
  • jQuery實(shí)現(xiàn)字符串按指定長度加入特定內(nèi)容的方法

    jQuery實(shí)現(xiàn)字符串按指定長度加入特定內(nèi)容的方法

    這篇文章主要介紹了jQuery實(shí)現(xiàn)字符串按指定長度加入特定內(nèi)容的方法,實(shí)例分析了jQuery操作字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • jQuery實(shí)現(xiàn)帶滾動(dòng)導(dǎo)航效果的全屏滾動(dòng)相冊(cè)實(shí)例

    jQuery實(shí)現(xiàn)帶滾動(dòng)導(dǎo)航效果的全屏滾動(dòng)相冊(cè)實(shí)例

    這篇文章主要介紹了jQuery實(shí)現(xiàn)帶滾動(dòng)導(dǎo)航效果的全屏滾動(dòng)相冊(cè),涉及jQuery針對(duì)頁面圖片元素與鼠標(biāo)事件的相關(guān)操作技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論

岗巴县| 尖扎县| 龙山县| 营山县| 年辖:市辖区| 淮滨县| 普格县| 双桥区| 沭阳县| 广西| 泰兴市| 西宁市| 阆中市| 昆山市| 宜州市| 永定县| 满洲里市| 盐源县| 台南县| 天等县| 育儿| 常德市| 富裕县| 壤塘县| 阿图什市| 剑阁县| 永善县| 浦江县| 双城市| 准格尔旗| 万年县| 山东省| 盘锦市| 微博| 三都| 大理市| 苍溪县| 凤台县| 从江县| 肇州县| 芦溪县|