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.extend 與 jQuery.fn.extend的用法及區(qū)別實(shí)例分析
這篇文章主要介紹了jQuery.extend 與 jQuery.fn.extend的用法及區(qū)別,結(jié)合實(shí)例形式分析了jQuery.extend與jQuery.fn.extend的功能、使用方法及區(qū)別,需要的朋友可以參考下2018-07-07jQuery獲取頁(yè)面元素絕對(duì)與相對(duì)位置的方法
這篇文章主要介紹了jQuery獲取頁(yè)面元素絕對(duì)與相對(duì)位置的方法,涉及jQuery中offset、position等方法的使用技巧,需要的朋友可以參考下2015-06-06jQuery中的pushStack實(shí)現(xiàn)原理和應(yīng)用實(shí)例
這篇文章主要介紹了jQuery中的pushStack實(shí)現(xiàn)原理和應(yīng)用實(shí)例,pushStack是jQuery內(nèi)核中一個(gè)非常重要的函數(shù),許多jQuery內(nèi)部函數(shù)中都頻繁用到它,掌握這個(gè)函數(shù),有利于理解jQuery的運(yùn)行原理,需要的朋友可以參考下2015-02-02jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼
這篇文章主要介紹了jQuery UI Grid 模態(tài)框中的表格實(shí)例代碼講解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-04-04jQuery實(shí)現(xiàn)獲取form表單內(nèi)容及綁定數(shù)據(jù)到form表單操作分析
這篇文章主要介紹了jQuery實(shí)現(xiàn)獲取form表單內(nèi)容及綁定數(shù)據(jù)到form表單操作,結(jié)合jQuery封裝插件操作分析了jQuery針對(duì)form表單的serializeJson數(shù)據(jù)獲取及setForm數(shù)據(jù)綁定相關(guān)操作技巧,需要的朋友可以參考下2018-07-07jquery實(shí)現(xiàn)模擬百分比進(jìn)度條漸變效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)模擬百分比進(jìn)度條漸變效果代碼,涉及jQuery基于時(shí)間函數(shù)操作頁(yè)面元素樣式變換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10jquery實(shí)現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法
這篇文章主要介紹了jquery實(shí)現(xiàn)將獲取的顏色值轉(zhuǎn)換為十六進(jìn)制形式的方法,包含了完整的實(shí)例與關(guān)鍵代碼的注釋說(shuō)明,并附帶了所需知識(shí)點(diǎn)的參考文章地址,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12