我有這種鏈接的識別的屬性jQuery的不從<a>標籤
var problem_id = $(this).attr("data-problem_id");
但它結束未定義。任何想法爲什麼?在其他情況下,我做了什麼似乎是完全這一點,我能夠得到problem_id
謝謝!
我有這種鏈接的識別的屬性jQuery的不從<a>標籤
var problem_id = $(this).attr("data-problem_id");
但它結束未定義。任何想法爲什麼?在其他情況下,我做了什麼似乎是完全這一點,我能夠得到problem_id
謝謝!
我想我發現了你的錯誤,儘管它超出了你的問題範圍。關鍵是,this
是一個div,而不是你的按鈕。你如何改變這一點,你需要親自看看。您可以重新分配點擊(而不是$("#div_id").live('click', blabla);
做$("#button_id").live('click', blabla);
,也可以運行在點擊目標檢查
這看起來像:
$('#div_id').live('click', function(evt) {
var btn = $(evt.target).closest('a');
var data_thingy = btn.data('data_thingy');
});
[編輯]
你可以btw也這樣做:$('#div_id a').live('click', blabla)
。this
- 對象然後將是實際的按鈕。
@Alexandr很好的抓住!!!!! – GeekedOut 2012-02-13 23:45:40
我相信你可以使用:
$(this).data("problem_id");
訪問數據的屬性。
剛剛嘗試過......沒有工作:( – GeekedOut 2012-02-13 23:19:29
在這種情況下,請嘗試'console.log(this)'並查看控制檯中顯示的內容。使用'this'錯誤。 – 2012-02-13 23:34:01
我認爲問題是$(this)不是你認爲它的超鏈接對象。你可以去到Console.log,看看對象究竟是什麼。也有你試過使用:
var problem_id = $('.image_button').attr('data-problem_id');
工程就好:http://jsfiddle.net/7U3vA/。我猜這個問題是在你的代碼中的其他地方(也許'這不是你認爲它的對象)。 – Alxandr 2012-02-13 23:16:09
@Alxandr有趣的一點。這還能做什麼?這是一個示例頁面的網址http://www.problemio.com/problems/problem.php?problem_id=157 – GeekedOut 2012-02-13 23:22:56
您調用$(this)的範圍是多少? 這似乎是問題... – 2012-02-13 23:32:41