2009-09-18 5 views
1

JavaScript에서 jQuery를 사용하여 HTML에서 클릭 한 특정 이미지에서 alt 태그를 가져 와서 그 값을 캡션 필드에 복사하려고합니다.대체 값 올리기

function change_image(diff){ 
    var newAlt = $(this).attr('alt'); 
    position = (position + diff + hrefs.length) % hrefs.length; 
    revealImage(hrefs[position]); 
    $nav.find('.counter').html(newAlt); 
} 

이것이 내가 지금까지 가지고있는 것이며 작동하지 않습니다.

$('img').click(change_image); 

을하지만 함수에 인수를 갖고 있기 때문에, 내 생각 :

+1

값을 표시하는 것은 올바른 것으로 보입니다. 무엇이 어디서 정확히 문제입니까? – ybo

+0

게시 한 코드가 alt 태그를 가져 오지 않습니다. 내 페이지를 실행할 때 alt 태그가 표시되어야하는 내용 영역이 비어 있습니다. 정확히 문제가 어디에 있는지 확신 할 수 없습니다. 적어도 단순한 ALERT를 실행하려고하는지 간단한 Alert를 실행하려고 시도 할 것입니다. 아마도이 문제가 alt 값 검색이나 값 게시와 관련된 것인지 정확히 알 수 있습니다. – Slevin

+0

오케이. 내 알리미가 '정의되지 않은'값을 반환했습니다. 따라서 문제는 alt 태그 검색에 있어야합니다. – Slevin

답변

1

당신은 함수 내부의 this 키워드를 사용하고, 당신이 이런 식으로 결합하면 이벤트를 트리거 요소를 참조합니다 당신이 그런 식으로, 일반 함수 호출로 호출되는 상황에 맞는합니다 (this 키워드)이 유지되지 않습니다 수행 할 수 있습니다 "HTML"을 이미지에서 고도 값을 검색하고 "ATTR"을 사용하여

$('img').click(function() { 
    change_image.call(this, 5); // preserve the context and pass a diff value 
}); 
+0

지금이 줄을 사용하고 있습니다 : var newAlt = $ .attr ($ ('img'). get (0), 'alt'); 하나의 정적 이미지의 대체 태그를 가져오고 (이) 기능을 사용하여 특별히 클릭 한 이미지의 대체 태그를 가져올 수 없습니다. 어떤 조언이 필요합니까? – Slevin