2014-12-16 2 views
2

확장을위한 콤보 상자 수신기가 있습니다. 확장시 콤보 상자 옵션 내에서 특정 클래스를 사용하여 각 요소에 대해 스타일을 적용합니다. 원하는 변경 사항 중 하나는 현재 속성의 값을 기반으로 속성을 변경하는 것입니다. this을 사용하면 정의되지 않은 값이 반환됩니다. 내가 그들의 속성 문자열이 가지고 .status-0 각 요소에 대해 싶습니다현재 attr 값을 기준으로 attr 문자열을 변경합니다.

expand : function(combo) { 
    $('.status-0').addClass('greyed-out'); 
    $('.status-0').attr('attrname', $(this).attr('attrname') + ' is status 0'); 
} 

가 추가 "상태 0". 속성은 ExtJS 툴팁이지만 솔루션은 모든 속성 유형에 적용 할 수 있어야합니다.

답변

2

function 오버로드를 사용하여 $.attr의 오버로드를 사용해야합니다. function은 두 개의 매개 변수 index 및 속성 값을 수신합니다. this은 요소를 나타냅니다. 그러나 우리는 전달 된 속성의 값을 사용할 수 있기 때문에 여기서는 필요하지 않습니다.

$('.status-0').attr('attrname', function(_, attrVal){ 
    return attrVal + ' is status 0'; 
}); 
+0

완벽하게 설명해 주셔서 감사합니다. (시간 제한을 받으면 곧 받아 들일 것입니다.) – Chris

+0

@ 크리스는 도와 줘서 다행입니다 :) –