2011-09-14 7 views
3

내 속성의 맞춤 속성이나 데이터에 액세스해야하지만 할 수 없습니다. 내 코드는 리피터에서 간단합니다. 이것이 문제를 일으키는 지 모르겠습니다. 여기jquery를 통해 맞춤 속성에 액세스

<a class="showAllComm" data-userid='<%# DataBinder.Eval(Container.DataItem, "USER_ID")%>' href="#sa">Show all comments</a> 

내 클릭 이벤트입니다 :

$('.showAllComm').click(function(index, element) { 
      var commId = $(element).data("userid"); 
}) 

commId이 정의되지하지만 난 그게 1.

어떻게 할 수의 값을 갖는 소스 코드를 볼 수 있습니다 여기에 코드입니다 userId에 액세스합니까? 이벤트 핸들러에 전달

var commId = $(this).data("userid"); 

인수 index와 당신이 가지고 원하는만큼 element되지 않습니다

답변

8

참조 대신 두 번째 매개 변수의 this를 가진 요소 감사합니다 .each().

기본적으로, 당신은 단지 통과 한 event 인수를 얻을.

DEMO는 :http://jsfiddle.net/Jjbwd/

$('.showAllComm').click(function(event) { 

    alert(event.type) // click 

    var commId = $(this).data("userid"); 
}); 
+0

attr("data-userid")은 감사하지만 난 궁금 사용, 요소와 속성을한다? – Pabuc

+1

@Pabuc 콜백에 두 번째 매개 변수가 없으므로 유일한 매개 변수는 jQuery 이벤트 객체입니다. – Alnitak

+0

이 경우에는 jQuery 객체를 만들 필요가 없습니다.보다 단순한'$ .data (this, "userid")'가 더 효율적입니다 ... 단지 this [$. expando] 호출을 수행하기 때문에 전체 jQuery() 호출/init보다. –

1

data 방법은 attr 방법에 대한 바로 가기가 아닙니다. 그것은

per the docs 그냥 요소에 액세스 할 수없는 이유는 무엇입니까 ..

+0

있다 * 다른 *'.DATA()'방법 그가 사용하고 코어가 회귀가있었습니다 ... 맞아요 :를 –

+0

그럼 난 'http://api.jquery.com/data/ 있을거야. 어쩌면 내가이 모든 것을 사용했다면 모든 데이터 속성에'data' 접두사를 사용하는 것에 대해 게으르지 않았을 것입니다. – RSG

관련 문제