jQuery中event.target和this的區別


this和event.target的區別:

  1.js中事件是會冒泡的,所以this是可以變化的,但event.target不會變化,它永遠指向觸發事件的DOM元素本身;

  2.this和event.target都是dom對象,使用jQuey中的方法可以將他們轉換為jquery對象:$(this)和$(event.target).

比如,一個很簡單的例子.

$(event.target)指向觸發事件的元素. 當點擊藍色小方框時, 藍色小方框會變成橙色, 但其外圍的大方框不會變色, 即沒有觸發事件的冒泡行為.

 

   點擊前:       點擊后:      

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7           *{
 8               margin: 0;
 9               padding: 0;
10              }
11             #big {
12                 width: 200px;
13                 height: 200px;
14                 background-color: gray;                
15             }    
16             #small {
17                 width: 100px;
18                 height: 100px;
19                 background-color: blue;
20                 margin: 0 auto;
21             }
22         </style>        
23     </head>
24     <body>
25     <div id="big">
26         <div id="small"></div>
27     </div>
28     <script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
29     <script type="text/javascript">
30         $("div, input").click(function (event) {
31              $(event.target).css("background-color", "orange");
32         });
33     </script>
34     </body>
35 </html>

$(this)指向觸發事件的元素. 當點擊藍色小方框時,藍色小方框會變橙色, 同時其外圍的灰色大方框也會變成橙色, 也就是說當用this獲取觸發事件的元素會引起事件的冒泡.

   點擊前:         點擊后:    

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style type="text/css">
 7           *{
 8               margin: 0;
 9               padding: 0;
10             }
11             #big {
12                 width: 200px;
13                 height: 200px;
14                 background-color: gray;                
15             }    
16             #small {
17                 width: 100px;
18                 height: 100px;
19                 background-color: blue;
20                 margin: 0 auto;
21             }
22         </style>        
23     </head>
24     <body>
25     <div id="big">
26         <div id="small"></div>
27     </div>
28     <script src="js/jquery-2.2.4.min.js" type="text/javascript" charset="utf-8"></script>
29     <script type="text/javascript">
30         $("div, input").click(function () {        
31             $(this).css("background-color", "orange");
32         })
33     </script>
34     </body>
35 </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM