2011-03-24 22 views
0

這是事情 - click事件在頁面上添加了一堆元素,並且它們都具有相同的id(這裏是否有錯誤?)。如何獲得在「live」事件中添加了ajax的元素的值?

我使用實況功能來click事件分配給所有這些元素:

$("#tag").live('click', function() { console.log($("#tag").html()); });

當我點擊其中任何一個,只有第一個元素的值被記錄下來。

如何讓點擊事件知道我實際點擊了哪些元素? 非常感謝!

更新:使用類和$(this)是要走的路。問題解決了。感謝griegs和John!

回答

1

如果添加的元素真的都具有相同的ID,而不是相同的類,那麼這是一個問題。如果您需要幫助,您需要發佈添加元素的代碼。

我可以從您發佈的代碼中看到,您將實時方法附加到.tag類,但是在您引用ID #tag元素的函數內部。您可能想了解classes and IDs之間的區別。

試試這個,解決你的問題:

$(".tag").live('click', function() { 
    console.log($(this).html()); 
}); 

或者,您可以執行以下操作來獲得被點擊的元素:

$(".tag").live('click', function(event) { 
    console.log($(event.target).html()); 
}); 
+1

我想我會帶班更好並開始解決這個問題。然後我不得不走了,所以我只是決定發佈這個問題,看看它會得到什麼樣的迴應。我的錯。 – 2011-03-25 01:15:23

1

嘗試使用$(this).val()$(this).html()

編輯

如果你想遍歷所有THR #tag元素,那麼你仍然可以使用$(this)來檢查點擊標籤對你的元素循環。如果這是有道理的。

btw:爲什麼你有多個具有相同ID的元素?這有點不好。一種更好的方法可能是使用通用類名稱的元素,您可以引用事件並將其附加到該元素。

相關問題