아코디언 효과(자바스크립트) 질문드립니다.
관련링크
본문
http://andparty.shop-pro.jp/?pid=93187366&view=smartphone
위 페이지인데요,
(한국서 열리는지 모르겠네요..)
+ <ㅡ 이 부분 디폴트 값을 닫혀 있는 상태로 하고 싶은데
어느 부분이 기입이 틀렸는지 모르겠습니다.
ㅠ ㅠ 아시는 분 알려주세용...
아래 캡쳐 부분입니다....
답변 2
해당 페이지 자바스크립트 오류는 위와 같습니다.
jquery로 소스를 짜면 해당 element가 없어도 오류가 안나는데, 순수 자바스크립트로 짜면 ( 모가 하나만 빠져도 ) 가차없이 에러 메시지를 출력합니다.
accordion.js에서
slider.prototype.init 함수를 아래와 같이 바꿔보세요.
slider.prototype.init=function(t,c,k){
var a,h,s,l,i; a=document.getElementById(t); this.sl=k?k:'';
if( a === null || typeof a === "undefined" ){
return;
}
h=a.getElementsByTagName('dt'); s=a.getElementsByTagName('dd'); this.l=h.length;
for(i=0;i<this.l;i++){var d=h[i]; this.arr[i]=d; d.onclick=new Function(this.nm+'.pro(this)'); if(c==i){d.className=this.sl}}
l=s.length;
for(i=0;i<l;i++){var d=s[i]; d.mh=d.offsetHeight; if(c!=i){d.style.height=0; d.style.display='none'}}
}
!-->
다시 설명해 드립니다.
아코디언이 잘 안되는 이유는
<script type="text/javascript">
var slider=new accordion.slider("slider");
slider.init("accordionB",-1,"open");
var slider2=new accordion.slider("slider2");
slider2.init("accordionC",-1,"open");
</script>
이 부분 때문에 안되는 건데요.
slider.init("accordionB",-1,"open"); <<< html 문서에 ID 인 accordionB 가 없어서 잘 안되는거에요.
해결방법 1.
위에서
var slider=new accordion.slider("slider");
slider.init("accordionB",-1,"open");
이 부분을 지운다.
해결방법 2.
accordion.js 를 제가 처음 얘기 한대로 바꿔주시면 됩니다.
잘 안되면 다시 얘기해 주세요.