jquery를 사용하여 동적으로 하위 리스트를 숨김/표시 하는 기능을 만들던 중
"object is not a function" 이라는 에러를 만났다.
- 그룹1
- 맴버1
- 맴버2
- 맴버3
- 그룹2
- 맴버4
- 맴버5
- 맴버6
위와 같은 html코드가 있을때 브라우저에서는 다음과 같이 나타난다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
여기서 jquery를 사용하여 그룹1, 그룹2를 클릭할때 그 하단의 맴버 목록을 숨김/표시하는 기능을 넣고
처음 페이지가 보여질때 목록이 숨겨진 상태로 표시하려 하였다.
그래서 코드를 다음과 같이 작성하였다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
위와 같이 하면 "object is not a function" 이라는 에러가 난다.
그래서 alert으로 다음과 같이 찍어보았다. 그 결과는
1. alert($(this)); -> [object Object]
2. alert($(".group").get(0)); -> [object HTMLLIElement]
결과적으로 두 방식은 서로 다른 타입의 object를 반환하여 생기는 문제...
그래서 아래와 같이 처리하였다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
다른 해결 방법도 있겠지만 일단 패스~~~ ^^;
* 추가 사항
위 코드에서
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
var obj_id= $(".group").get(i).id; $("#"+obj_id).children("ul").css("display", "none");
부분을 아래와 같이 해도 된다.
(코드는 Syntax Highlighter가 적용되어 모바일에서는 안보일 수 있습니다.)
$($(".group").get(i)).children("ul").css("display", "none");
'JavaScript' 카테고리의 다른 글
jquery를 이용한 QR코드 생성 오픈소스 (0) | 2015.01.29 |
---|---|
이벤트의 순차적 발생? 이벤트 버블링~ (0) | 2015.01.15 |
window.open에서 GET, POST로 전송하기 (3) | 2014.12.19 |
jquery의 draggable을 사용하다가... (0) | 2014.10.01 |
javascrip에서 explorer 버젼 확인, HTML5등 때문에 (0) | 2014.06.23 |