js阻止瀏覽器默認(rèn)行為和阻止冒泡事件


在使用javascript編程時(shí)會(huì)遇到一個(gè)問題,就是當(dāng)你給html添加事件時(shí),由于瀏覽器默認(rèn)的為冒泡型事件觸發(fā)機(jī)制,所以會(huì)觸發(fā)你不想觸發(fā)的事件.那么通過如下的函數(shù)可以解決這個(gè)問題.[兼容IE和FF]

1.阻止事件冒泡,使成為捕獲型事件觸發(fā)機(jī)制.

function stopBubble(e) {

//如果提供了事件對(duì)象宾肺,則這是一個(gè)非IE瀏覽器

if( e && e.stopPropagation )

//因此它支持W3C的stopPropagation()方法

e.stopPropagation();

else

//否則,我們需要使用IE的方式來取消事件冒泡

window.event.cancelBubble =true;

}

2.當(dāng)按鍵后,不希望按鍵繼續(xù)傳遞給如HTML文本框?qū)ο髸r(shí),可以取消返回值.即停止默認(rèn)事件默認(rèn)行為.

//阻止瀏覽器的默認(rèn)行為

function stopDefault ( e ) {

//阻止默認(rèn)瀏覽器動(dòng)作(W3C)

if( e && e.preventDefault )

{e.preventDefault();}

//IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式

else{

window.event.returnValue =false;

returnfalse;

}

3.那么通過下面的一段代碼我們來看下函數(shù)一的效果:

<script>

效果測(cè)試

$(document).ready(function()

{

$('div.c1').click(function(e){alert('單擊了div');});

$('div.c2').click(function(e){alert('單擊了div');stopBubble(e);});

$(document).click(function(e){alert('單擊了document');});

$('#txt1').val('123');

$('#txt1').click(function(e){stopBubble(e);});

$('#txt1').keydown(function(e){stopDefault(e);alert('你按下了鍵值'+e.keyCode); });

})

function stopBubble(e) {

//如果提供了事件對(duì)象丰刊,則這是一個(gè)非IE瀏覽器

if ( e && e.stopPropagation )

//因此它支持W3C的stopPropagation()方法

e.stopPropagation();

else

//否則,我們需要使用IE的方式來取消事件冒泡

window.event.cancelBubble = true;

}

//阻止瀏覽器的默認(rèn)行為

function stopDefault( e ) {

//阻止默認(rèn)瀏覽器動(dòng)作(W3C)

if ( e && e.preventDefault )

e.preventDefault();

//IE中阻止函數(shù)器默認(rèn)動(dòng)作的方式

else

window.event.returnValue = false;

return false;

}

</script>

<style>

body{

font-size:14px;

}

}

.c1{

font-family:"Arial Unicode MS"

}

.c2{

font-family:helvetica,simsun,arial,clean

}

</style>

<body>

<div class="c1">測(cè)試的文字,這里是樣式C1,單擊以冒泡的形式觸發(fā)事件</div>.

<div class="c2">測(cè)試的文字,這里是樣式C2,單擊以捕獲的形式觸發(fā)事件.</div>

<div><input id="text1" name="Text1" type="text" /></div>

</body>

上面的效果測(cè)試中,

函數(shù)一:IE6.0,FireFox,Chrome,Opera均有效

函數(shù)二:在IE中測(cè)試效果很好;Chrome,Opera無效,在FF中,按鍵時(shí),如果在

$('#txt1').keydown(function(e){stopDefault(e);alert('你按下了鍵值'+e.keyCode); });

這句話打個(gè)斷點(diǎn)在執(zhí)行,可以達(dá)到效果.但是如果不打斷點(diǎn)則沒有效果,沒找出具體原因,如果有知道的可以說出來大家討論下

積累就是進(jìn)步.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市跪者,隨后出現(xiàn)的幾起案子棵帽,更是在濱河造成了極大的恐慌渣玲,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忘衍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡枚钓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門搀捷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫩舟,你說我怎么就攤上這事〖已幔” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵蜀踏,是天一觀的道長。 經(jīng)常有香客問我掰吕,道長,這世上最難降的妖魔是什么殖熟? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘照皆。我一直安慰自己,他們只是感情好膜毁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘟滨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杂瘸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天败玉,我揣著相機(jī)與錄音,去河邊找鬼运翼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛血淌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悠夯,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼疗疟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起策彤,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎店诗,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庞瘸,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嘴办。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涧郊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妆艘,到底是詐尸還是另有隱情,我是刑警寧澤批旺,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站汽煮,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏茅诱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一瑟俭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧摆寄,春花似錦、人聲如沸微饥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肃续,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間始锚,已是汗流浹背刽酱。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工瞧捌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留润文,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓典蝌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稳捆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容