jQuery中事件對象e的事件冒泡用法示例介紹
更新時(shí)間:2014年04月25日 15:26:25 作者:
這篇文章主要介紹了jQuery中事件對象e的事件冒泡用法,需要的朋友可以參考下
之前查手冊的時(shí)候沒有看到有事件對象這一概念,當(dāng)時(shí)我想實(shí)現(xiàn)的是點(diǎn)擊一個(gè)文本框出現(xiàn)一個(gè)下拉多選框,在文本框失去焦點(diǎn)是觸發(fā)blur事件,從而使下拉框隱藏起來。但是當(dāng)我要選擇多選框是也會(huì)使它隱藏,就不能進(jìn)行選擇了,這讓我很郁悶。查了一天的資料,終于在脫離了焦點(diǎn)這一塊。在網(wǎng)上發(fā)現(xiàn)有一個(gè)事件冒泡的東西,發(fā)現(xiàn)通過點(diǎn)擊可以實(shí)現(xiàn)我的這一功能。
e.stopPropagation()阻止事件冒泡
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
</head>
<body>
<table>
<tr>
<td><span>冒泡事件測試</span></td>
</tr>
</table>
</body>
我們先看這段代碼:
<script type="text/javascript">
$(function () {
$("table").click(function () { alert("table alert"); });
$("td").click(function () { alert("td alert"); });
$("span").click(function (){
alert("span alert");
});
});
</script>
我們會(huì)看到這樣的情況:span alert -> td alert -> table alert。這就叫事件冒泡。就是從下到上,從里到外,事件依次觸發(fā)。能依次觸發(fā)的條件是擁有同一事件的多個(gè)嵌套的標(biāo)簽,切事件會(huì)同時(shí)同步發(fā)生,會(huì)從里到外實(shí)現(xiàn)同一事件的響應(yīng)。
有的時(shí)候我們不希望事件冒泡咋辦?
<script type="text/javascript">
$(function () {
$("table").click(function () { alert("table alert"); });
$("td").click(function () { alert("td alert"); });
$("span").click(function (e){
alert("span alert");
e.stopPropagation();
});
});
</script>
當(dāng)我給整個(gè)document實(shí)現(xiàn)click事件是,可以給文本框和下拉選框阻止事件冒泡,使得再點(diǎn)擊她們的同時(shí)不會(huì)使document觸發(fā)事件。
如果想獲得事件相關(guān)信息,就要給知識(shí)方法加一個(gè)e對象,e就是事件對象。
e.preventDefault()阻止事件默認(rèn)行為。
$("a").click(function (e) {
alert("默認(rèn)行為被禁止嘍");
e.preventDefault();
});
<a >測試</a>
return false等效于同時(shí)調(diào)用e.preventDefault()和e.stopPropagation()
return false除了阻止默認(rèn)行為之外,還會(huì)阻止事件冒泡。如果手上有一份jquery源代碼的話,可查看其中有如下代碼:
if (ret===false){
event.preventDefault();
event.stopPropagation();
}
e.stopPropagation()阻止事件冒泡
復(fù)制代碼 代碼如下:
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
</head>
<body>
<table>
<tr>
<td><span>冒泡事件測試</span></td>
</tr>
</table>
</body>
我們先看這段代碼:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
$(function () {
$("table").click(function () { alert("table alert"); });
$("td").click(function () { alert("td alert"); });
$("span").click(function (){
alert("span alert");
});
});
</script>
我們會(huì)看到這樣的情況:span alert -> td alert -> table alert。這就叫事件冒泡。就是從下到上,從里到外,事件依次觸發(fā)。能依次觸發(fā)的條件是擁有同一事件的多個(gè)嵌套的標(biāo)簽,切事件會(huì)同時(shí)同步發(fā)生,會(huì)從里到外實(shí)現(xiàn)同一事件的響應(yīng)。
有的時(shí)候我們不希望事件冒泡咋辦?
復(fù)制代碼 代碼如下:
<script type="text/javascript">
$(function () {
$("table").click(function () { alert("table alert"); });
$("td").click(function () { alert("td alert"); });
$("span").click(function (e){
alert("span alert");
e.stopPropagation();
});
});
</script>
當(dāng)我給整個(gè)document實(shí)現(xiàn)click事件是,可以給文本框和下拉選框阻止事件冒泡,使得再點(diǎn)擊她們的同時(shí)不會(huì)使document觸發(fā)事件。
如果想獲得事件相關(guān)信息,就要給知識(shí)方法加一個(gè)e對象,e就是事件對象。
e.preventDefault()阻止事件默認(rèn)行為。
復(fù)制代碼 代碼如下:
$("a").click(function (e) {
alert("默認(rèn)行為被禁止嘍");
e.preventDefault();
});
<a >測試</a>
return false等效于同時(shí)調(diào)用e.preventDefault()和e.stopPropagation()
return false除了阻止默認(rèn)行為之外,還會(huì)阻止事件冒泡。如果手上有一份jquery源代碼的話,可查看其中有如下代碼:
復(fù)制代碼 代碼如下:
if (ret===false){
event.preventDefault();
event.stopPropagation();
}
相關(guān)文章
Jquery寫一個(gè)鼠標(biāo)拖動(dòng)效果實(shí)現(xiàn)原理與代碼
近日項(xiàng)目中要做一個(gè)鼠標(biāo)拖拽層的效果,于是手動(dòng)使用Jquery做了一個(gè),發(fā)出來跟大伙兒分享一下,并希望能得到高手的指點(diǎn),如何有高手改進(jìn)的話,在下不勝感激2012-12-12
jQuery時(shí)間戳和日期相互轉(zhuǎn)換操作示例
這篇文章主要介紹了jQuery時(shí)間戳和日期相互轉(zhuǎn)換操作,結(jié)合實(shí)例形式分析了jQuery針對日期與時(shí)間戳的轉(zhuǎn)換、運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
jquery實(shí)現(xiàn)垂直和水平菜單導(dǎo)航欄
這篇文章主要為大家詳細(xì)介紹了jquery實(shí)現(xiàn)垂直和水平菜單導(dǎo)航欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
jQuery簡單實(shí)現(xiàn)驗(yàn)證郵箱格式
這篇文章主要介紹了jQuery簡單實(shí)現(xiàn)驗(yàn)證郵箱格式的相關(guān)資料,需要的朋友可以參考下2015-07-07
JQuery插件fancybox無法在彈出層使用左右鍵的解決辦法
本篇文章主要是對JQuery插件fancybox無法在彈出層使用左右鍵的解決辦法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12
利用jQuery操作對象數(shù)組的實(shí)現(xiàn)代碼
利用jQuery操作對象數(shù)組的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2011-04-04
jQuery 導(dǎo)航自動(dòng)跟隨滾動(dòng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了jQuery 導(dǎo)航自動(dòng)跟隨滾動(dòng)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-05-05

