2013-07-09 44 views
-1
answerdiv.data("question",questionObj.question).data("seq",answers[i].seq); 
answerdiv.click(handleAnswerClick); 

........... 
........... 

var handleAnswerClick=function(event){ 
    var x = event.target.question; 
    var y= event.target.seq; 
} 

我想知道元素中的數據,當它觸發事件時。
但我都使用警報或調試器,檢查x和y是否爲空..
是不是有什麼問題?無法將dom元素數據傳遞給事件處理程序

+0

對不起,我要選擇這兩個dafaude和阿倫正確答案。但我只能選擇一個。感謝你們兩個,爲了救我。 –

回答

0

您需要使用.data(string)來檢索數據。

由於您使用的是.data(key, value)來設置該值,因此該數據由jQuery管理,因此爲了檢索數據,您需要使用jquery本身提供的實用工具方法。

在事件處理event.target指的是一個普通的DOM元素,所以你需要用使用jQuery

var handleAnswerClick=function(event){ 
    var answerdiv = $(event.target); 
    var x = answerdiv .data('question'); 
    var y= answerdiv .data('seq'); 
} 
+0

這是什麼?請編輯你的答案。 – mohkhan

2

的jQuery給你的event.target它不具有訪問jQuery方法是真正的DOM節點。如果你想使用jQuery的data方法就可以了,你需要首先把它包在jQuery的:

function handleAnswerClick (event) { 
    var $target = $(event.target), 
     x = $target.data('question'), 
     y = $target.data('seq'); 
} 
相關問題