2013-02-16 24 views
-1

因此,我有10個這樣的鏈接:<a href="#" data-test="test" class="testclass"></a>
and on function。像這樣:在Jquery中的.on事件中獲取屬性

$(document).on("click", ".testclass", function() { 
     alert($(this).attr('data-test')); 
    }); 

我不明白我在這種情況下如何獲得特定標籤的數據測試屬性。 $(this)回報document對象,而不是a

+0

$(this).data('test')'也應該可以工作。 – Leeish 2013-02-16 00:54:33

+0

它的工作http://jsfiddle.net/r043v/TZtFA/你的jQuery版本是什麼? – r043v 2013-02-16 01:00:04

+0

如果出於某種奇怪的原因''this' does not work(it should),try'event.target' instead。 – adeneo 2013-02-16 01:06:02

回答

-1

你要監聽綁定到錨,而不是文檔:

$('a.testclass').on('click', function() { 
    alert($(this).data('test')); 
}) 

而且data function是獲得附加到DOM元素的數據以正確的方式。

+0

$(this)'指的是偵聽器所連接的對象,在你的情況下'document'不是a。 Felix的回答是正確的,因爲監聽器將被附加到'a.testclass'元素。 – Leeish 2013-02-16 00:56:35

+0

.on帶有第二個參數將意味着。選擇器內的參數的命令 – r043v 2013-02-16 01:03:51

+0

OP正在使用委託版本的on()。您的版本將不適用於未來的元素。 OP版本應該可以正常工作,你可以綁定到'document' – charlietfl 2013-02-16 01:04:08