개발 Q&A

제목 자바스크립트 변수형 비교
카테고리 JavaScript
글쓴이 layman 작성시각 2017/06/29 09:46:59
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 9929   RSS

이런식의 카테고리관리 화면이 있습니다.

카테고리명을 클릭하면 파랗게 변하며, .active 클래스가 추가됩니다.

또 다른 카테고리명을 클릭하면, 기존 .active를 가진 a태그는 removeClass('active')가 되구요.

 

그리고 모든 카테고리명에는 .nav_tree_label 클래스를 가지고 있어요.

여기서 문제가..

 

어떤 카테고리명을 클릭 후, 그 카테고리의 '하위카테고리생성'을 눌렀을 때요.

status = $('a.nav_tree_label.active').length; 

if(status == 1) {

} else {

}

이렇게 있습니다. (이건 어떠한 카테고리명이라도 하나 선택되었는지 여부입니다.)

카테고리 a태그들 중 active는 클릭한 항목만 해당되어서 무조건 0개 아니면 1개이구요.

하나를 클릭했을 때, 즉 status가 == 1일때도 자꾸 else로 빠집니다....

 

또한 alert()으로 status를 찍어봐도 1이 출력되구요.

typeof로 확인해본 결과 status가 string이라서, Number(status)로 형변환도 해주었습니다.

그래도 안되네요.

 

웃긴건 IE에서만 이런 현상이 있고, 크롬에서는 잘되네요..ㅜㅜ

원인을 알수있을까요..?

IE에서도 콘솔에 오류같은건 안찍히고, 그냥 else로 빠져버립니다.

 다음글 jquery keyup함수를 사용할 때 한글 입력시 문... (2)
 이전글 네임서버를 ip로 변경 후 질문입니다. (2)

댓글

개락 / 2017/06/29 11:09:23 / 추천 0
0/1이면 true false도 적용될테니 if(status){ } 로 하셔도 될꺼같은데 해보셨겠죠?...ㅎㅎ;
kaido / 2017/06/29 13:21:04 / 추천 0

있냐 없냐를 기준으로 하시는 거면...

if(status){

}

 

이렇게 하시면 될것 같습니다.

참고로 크롬이 가끔 오류난것도 오류 안난거라고 알려 주고, 변경 했는데도 변경 안된것 처럼 나오는 경우가 있습니다.

환장 하는것은 F12 눌러 개발자 모드에 소스 보기에도 수정이 되었는데 작동은 수정 전으로 나오는 경우가 있습니다.

JS 수정은 IE로 한번 테스트 해보는 것도 좋습니다. IE는 엄격하게 체크해 주거든요. [그리고 어차피 IE 맞춰줘야함 ㅜㅜ]

layman / 2017/06/30 10:36:13 / 추천 0

자답합니다.

status = $('a.nav_tree_label.active').length; 

ie에서는 status 변수를 선언할 때, var를 집어넣어주니까 제대로 status 값을 읽는 것 같네요.

var status = $('a.nav_tree_label.active').length;  이렇게 해주니까 제대로 동작합니다.