2011-04-29 1 views
0

특정 번호로 실행하고 싶은 기능이 있습니다. 이 수는 ul 요소의 요소 수에 따라 동적입니다. 이 예에서 10 li 요소가 있다고 가정 해 보겠습니다.jQuery의 각 함수를 사용하여 이벤트에 인덱스 번호를 바인딩하려면 어떻게합니까?

function alertThisNum(itemNum) { 
    alert(itemNum); 
} 

$('ul li').each(function(index) { 
    itemNum = index + 1; 
    $("a#" + itemNum).bind("click", function() { 
     alertThisNum(itemNum); 
    }); 
}); 

문제는, itemNum이은 항상 마지막 번호입니다. 숫자 10을 모든 링크에 바인드합니다.

어떻게 등등 A.1는 "1", A.2는 "2"를 경고하는 경고에 도착하고 있습니까?

+0

마지막으로 itemNum 값을 경고합니다. 그렇지 않습니까? 결과 html을 게시 할 수 있습니까? – FraserK

답변

1

var 키워드로이 라인 itemNum = index + 1;을 이전하여 itemNum 변수를 지역화 :

var itemNum = index + 1; 

http://jsfiddle.net/JAAulde/FnSmA/

+1

훌륭한 사례를 가져 주셔서 감사합니다. jsfiddle을 더 사용해야합니다! –

2

당신은 var 키워드를 사용하여 each 콜백에 지역 변수를 선언해야합니다.

현재 모든 콜백은 동일 itemNum글로벌을 공유합니다.