2010-01-05 46 views
1

我知道我可以在超鏈接元素上使用.click()方法。但是,我怎麼知道哪個元素被點擊?首先,我必須參考超鏈接的ID。如何獲取對點擊超鏈接的引用

所以可以說我有這樣的超鏈接的頁面中查看源代碼:

<a href="addButton1" href="...someurl"><img src="somebutton"></a> 
<a href="addButton2" href="...someurl"><img src="somebutton"></a> 
<a href="addButton3" href="...someurl"><img src="somebutton"></a> 
<a href="addButton4" href="...someurl"><img src="somebutton"></a> 

,當用戶點擊addButton1,我怎麼知道這是addButton1被點擊的第一個地方,讓我可以現在在它上面應用一個.click()事件?

回答

5

到網頁上的所有鏈接點擊觀察事件:

$("a").click(function (e) { 
     // this function fires anytime a hyperlink is clicked 

     e.preventDefault(); 

     // reference $(this) to get at the specific 
     // link that fired the event, such as: 
     alert($(this).attr('href')); // display href value of the hyperlink 
    }); 

觀察點擊事件的網頁上的鏈接的子集:

添加類超鏈接標籤。例如:<a class="observe" href="#">

並改變上述功能的事件簽名:

$("a.observe").click(function (e) { ... }); 
+0

如果我不想爲每個超鏈接運行javascript,該怎麼辦?我會讓用戶檢查並且每次運行這個函數。只有超鏈接的一個子集,這個功能將適用於我的頁面上的許多其他超鏈接(頂部導航,左前衛等)之外。 – PositiveGuy 2010-01-05 22:45:21

+0

我已編輯解決方案以演示此方法。 – JonathanK 2010-01-05 23:19:21

0

,最好的辦法區分不同的鏈路是一類或ID添加到他們。然後,您可以設置事件處理,像這樣:

HTML:

<a href="javascript:" class="myClass" id="myId">Click here!</a> 

的jQuery可以通過以下兩種之一來完成(確定,有兩個以上,但這裏有兩個)方式:

$('#myId').click(function() { doSomething() }); 
$('.myClass').click(function() { doSomething() });