jQuery中event.target和this的區(qū)別詳解
this和event.target的區(qū)別:
1.js中事件是會(huì)冒泡的,所以this是可以變化的,但event.target不會(huì)變化,它永遠(yuǎn)指向觸發(fā)事件的DOM元素本身;
2.this和event.target都是dom對(duì)象,使用jQuey中的方法可以將他們轉(zhuǎn)換為jquery對(duì)象:$(this)和$(event.target).
比如,一個(gè)很簡(jiǎn)單的例子.
$(event.target)指向觸發(fā)事件的元素. 當(dāng)點(diǎn)擊藍(lán)色小方框時(shí), 藍(lán)色小方框會(huì)變成橙色, 但其外圍的大方框不會(huì)變色, 即沒(méi)有觸發(fā)事件的冒泡行為.
點(diǎn)擊前:
點(diǎn)擊后: 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#big {
width: 200px;
height: 200px;
background-color: gray;
}
#small {
width: 100px;
height: 100px;
background-color: blue;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="big">
<div id="small"></div>
</div>
<script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$("div, input").click(function (event) {
$(event.target).css("background-color", "orange");
});
</script>
</body>
</html>
$(this)指向觸發(fā)事件的元素. 當(dāng)點(diǎn)擊藍(lán)色小方框時(shí),藍(lán)色小方框會(huì)變橙色, 同時(shí)其外圍的灰色大方框也會(huì)變成橙色, 也就是說(shuō)當(dāng)用this獲取觸發(fā)事件的元素會(huì)引起事件的冒泡.
點(diǎn)擊前:
點(diǎn)擊后: 
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#big {
width: 200px;
height: 200px;
background-color: gray;
}
#small {
width: 100px;
height: 100px;
background-color: blue;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="big">
<div id="small"></div>
</div>
<script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$("div, input").click(function () {
$(this).css("background-color", "orange");
})
</script>
</body>
</html>
例二
onclick = changeImg(this) vs onclick = changeImg(event)
<img src='usa.gif' onclick="changeImg(event)" />
<script>
var myImages = [
'usa.gif','canada.gif','jamaica.gif','mexico.gif'
];
function changeImg(e) {
var el = e.target;
var newImgNumber = Math.round(Math.round()*3);
while(el.src.indexOf(myImages[newImgNumber]) != -1){
el.src =myImages[newImgNumber];
}
}
</script>
this是Javascript語(yǔ)言的一個(gè)關(guān)鍵字。
this代表函數(shù)運(yùn)行時(shí),自動(dòng)生成的一個(gè)內(nèi)部對(duì)象,只能在函數(shù)內(nèi)部使用。
this和event.target的區(qū)別:
js中事件是會(huì)冒泡的,所以this是可以變化的,但event.target不會(huì)變化(在事件觸發(fā)時(shí),只傳遞當(dāng)前event對(duì)象的引用),它永遠(yuǎn)是直接接受事件的目標(biāo)DOM元素;
另外,this和event.target都是dom對(duì)象,如果要使用jquey中的方法可以將他們轉(zhuǎn)換為jquery對(duì)象:$(this)和$(event.target);
到此這篇關(guān)于jQuery中event.target和this的區(qū)別詳解的文章就介紹到這了,更多相關(guān)jQuery中event.target和this內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
jQuery ajax dataType值為text json探索分享
ajax dataType值為text json的使用是怎么樣的,在本文將為大家想你想介紹下,感興趣的朋友不要錯(cuò)過(guò)2013-09-09
jquery+css實(shí)現(xiàn)側(cè)邊導(dǎo)航欄效果
這篇文章主要為大家詳細(xì)介紹了jquery+css實(shí)現(xiàn)側(cè)邊導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
jQuery Dialog 彈出層對(duì)話(huà)框插件
網(wǎng)上這種插件很多,但是沒(méi)一個(gè)合適的,大部分都做得很大,功能齊全。于是自己做了這個(gè)小插件,順便學(xué)習(xí)下jQuery插件的寫(xiě)法。2010-08-08
jquery實(shí)現(xiàn)搜索框功能實(shí)例詳解
這篇文章主要介紹了jquery實(shí)現(xiàn)搜索框功能,搜索框?qū)崿F(xiàn)搜索一個(gè)ul列表中的指定關(guān)鍵詞的li。具體實(shí)現(xiàn)代碼大家參考下本文2018-07-07
前端開(kāi)發(fā)部分總結(jié)[兼容性、DOM操作、跨域等](持續(xù)更新)
在公司做這個(gè)項(xiàng)目已經(jīng)6個(gè)多月了,總結(jié)一些問(wèn)題,也算是拋磚引玉吧,希望更多的朋友一起分享一些技巧。2010-03-03
jquery 自定義容器下雨效果可將下雨圖標(biāo)改為其他
這篇文章主要介紹了jquery 自定義容器下雨效果可將下雨圖標(biāo)改為其他,需要的朋友可以參考下2014-04-04
jQuery實(shí)現(xiàn)定位滾動(dòng)條位置
基于jQuery實(shí)現(xiàn)滾動(dòng)條滾動(dòng)到子元素位置以此來(lái)定位滾動(dòng)條位置,下面是小編給大家?guī)?lái)的實(shí)現(xiàn)代碼,代碼比較簡(jiǎn)單,需要的朋友可以參考下2016-08-08
jquery實(shí)現(xiàn)可自動(dòng)判斷位置的彈出層效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)可自動(dòng)判斷位置的彈出層效果代碼,可實(shí)現(xiàn)根據(jù)鼠標(biāo)位置進(jìn)行合理的判斷并顯示彈出層的功能,涉及jQuery鼠標(biāo)事件及頁(yè)面元素位置屬性的相關(guān)判定技巧,需要的朋友可以參考下2015-10-10
jquery實(shí)現(xiàn)文本框數(shù)量加減功能的例子分享
在做商城項(xiàng)目的時(shí)候,需要在購(gòu)物車(chē)中增加一個(gè)商品加減功能,并在加減時(shí)同時(shí)修改總價(jià)格的顯示,并且保證文本框text只能輸入純數(shù)字2014-05-05

