簡體   English   中英

如何在使用“全選”運算符(即“ *”)和jquery時獲得點擊元素?

[英]how to get clicked element while using “select all” operator i.e “ * ” using jquery?

 $('body').on("click", "*", function(e) { console.log("clicked tag:" + this.tagName); console.log("index:(" + this.tagName + ")[" + $(this).index(this.tagName) + "]"); }); 
 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </head> <body> <div> <p>hello !</p> <div> <p>stack overflow</p> </div> </div> </body> </html> 

此代碼標識click事件並獲取人員單擊的html標記 ,並顯示元素的索引 問題在於,它首先返回clicked元素html標簽(這是必需的) ,然后再返回其父元素(這不是必需的) 我只想要clicked元素,而不是父元素。 我應該怎么做?

因為您使用的是*選擇器,所以當您單擊某個元素時,它會傳播並觸發每個祖先的click處理程序,直到到達body為止。 您可以只使用evt.stopPropagation() ,但是沒有必要,因為您想要的東西已經可以通過evt.target (即,觸發單擊處理程序綁定到body的元素):

$( 'body' ).on( 'click', function( evt ) {
  console.log( evt.target );
} );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM