개발 Q&A

제목 제이쿼리의 .click(function()안에 for문 적용 문의드립니다.
글쓴이 AMKORJS 작성시각 2014/11/10 18:15:10
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 13862   RSS
<scRIPT LANGUAGE='JAVASCRIPT'> 
	$(function($){
		function layer_open(el){ 
 
생략.....
 
var layer_no = 0;
for(var I=<?=$first?>; I<<?=$last_temp?>; I++)                                   // 1번
{
  $('#layer_open_view'+layer_no).click(function(){                // 2번
  alert(layer_no);                                                               // 3번
  layer_open('layer_'+layer_no); /* 열고자 하는 것의 아이디를 입력 */     // 4번
});
 layer_no++;
} 
 


 

1번 을 보시면 for문이 있습니다. 참고로 이 for문은 총 10번 돕니다.

 

2번은 해당 id값을 클릭하면 즉 id값이 layer_open_view$layer_no​ 인 것을 클릭하게 되면 

 

 

4번에서 보이는 layer_open('layer_'+layer_no); ​ 이 함수를 실행하게 됩니다.

 

문제는 for문을 돌리게 되면  4번인 layer_open('layer_'+layer_no); ​  이 구문이 10번 안돌아가는것입니다.

 

클릭함수 라서 그런가요.  

 

4번 구문도

 

layer_open('layer_'0); ​ 

 

layer_open('layer_1); ​ 

 

layer_open('layer_'2); ​ 

 

layer_open('layer_3); ​ 

 

이렇게 돌리고 싶은데 ㅠ,ㅠ 방법이 없는건가요? ㅠ,ㅠ 

 

layer_no 이 변수를 이용해서 0~ 9까지 총 10번돌리지만.. 4번에 있는 것들은 for문이 적용되지 않네요 ㅠ,ㅠ

 

한참 고민해봐도 ㅠ,ㅠ 

 

​3번인 alert(layer_no);  출력했는데 for문 10번째​인 9 다음인 10이 출력이 되네요 ㅠ,ㅠ 

 다음글 PHP 어레이 질문입니다. (3)
 이전글 xampp 관련 초보가 질문드립니다 ㅎㅎ (2)

댓글

한대승(불의회상) / 2014/11/10 20:28:08 / 추천 0
클릭 이벤트가 발생해야 layer_no 의 값을 체크 하니 for 루프에서 10번 아니라 100번을 돌면서 값을 전달해도 전달이 안되겠네요.
다른 방법을 사용하세요.
케이든 / 2014/11/11 10:31:28 / 추천 0
var layer_no = 1;
for(var i = 0; i < 10; i++) (function(ln) {
    $('#layer_open_view' + ln).click(function(){
        layer_open('layer_' + ln);
    });
    layer_no++;
})(layer_no);