2010-07-01 25 views
1

內我有這個標記(簡體):的jQuery:獲得點擊錨從無序列表

<ul class="targets"> 
    <li><a href="javascript:void(0);" class="info">A</a></li> 
    <li><a href="javascript:void(0);" class="info">B</a></li> 
    <li><a href="javascript:void(0);" class="info">C</a></li> 
</ul> 

而且這個腳本(簡體):

$('.targets').click(function(e) { 
    alert(e.target); // alerts "javascript:void(0);" 
}); 

我真正想要的是點擊的錨對象,而不是主播的目標。

如果這是可能的,我該怎麼做?

它必須錨定在列表中,但該函數也必須處理其他dom元素的點擊。

回答

4

我覺得你的困惑來自於e.target的toString作爲href屬性,例如:

$('.targets').click(function(e) { 
    alert(e.target.nodeName); // alerts "A" 
    $(e.target).fadeOut(); //this would fade out the anchor you clicked on 
})​; 

e.target你已經有了什麼,你只需要訪問你感興趣的任何屬性。否則,當你提醒它時,它默認顯示href屬性。

Here's a demo to see what I mean

+0

啊!當然:)謝謝尼克。 – Mickel 2010-07-01 12:11:14

0
$('.targets li a.info').click(function(e) { 
    alert(this);  // alerts the anchor DOM object itself 
    alert(e.target); // alerts "javascript:void(0);" <- this *should* do the same 
}); 
+0

忘了提,它具有與其他元素比錨正常工作。可能嗎? – Mickel 2010-07-01 12:06:36

+0

@Mickel:當然,它可以與你綁定函數的任何元素一起工作。如圖所示,不是使用'e.target',而是直接使用'this'。 – Tomalak 2010-07-01 12:09:55

0

它不是在做你認爲它在做的事情; e.target絕對是您的<a>元素。嘗試將其更改爲alert(e.target.className)以向您自己證明。

0
$('.targets li a').click(function(e) { 
    alert(this.attr('href')); 
}); 

關鍵字 「這個」 作爲一個jQuery參考元素手頭