테스트 사이트 - 개발 중인 베타 버전입니다

아코디언 효과(자바스크립트) 질문드립니다. 채택완료

nanati 10년 전 조회 4,089

http://andparty.shop-pro.jp/?pid=93187366&view=smartphone">http://andparty.shop-pro.jp/?pid=93187366&view=smartphone 

위 페이지인데요,

(한국서 열리는지 모르겠네요..)

 

+ <ㅡ 이 부분 디폴트 값을 닫혀 있는 상태로 하고 싶은데

어느 부분이 기입이 틀렸는지 모르겠습니다.

ㅠ ㅠ 아시는 분 알려주세용...

 

 

아래 캡쳐 부분입니다.... 

 


 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
thisgun
10년 전


 

해당 페이지 자바스크립트 오류는 위와 같습니다.

jquery로 소스를 짜면 해당 element가 없어도 오류가 안나는데, 순수 자바스크립트로 짜면 ( 모가 하나만 빠져도 ) 가차없이 에러 메시지를 출력합니다.

 

accordion.js에서 

 

slider.prototype.init 함수를 아래와 같이 바꿔보세요. 

</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>slider.prototype.init=function(t,c,k){</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>var a,h,s,l,i; a=document.getElementById(t); this.sl=k?k:'';</p><p> </p><p>        if( a === null || typeof a === "undefined" ){</p><p>            return;</p><p>        }</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>h=a.getElementsByTagName('dt'); s=a.getElementsByTagName('dd'); this.l=h.length;</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>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}}</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>l=s.length;</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>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'}}</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>}</p><p>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

n
nanati
10년 전
엘리먼트가 없다는 얘긴가요?^^;
t
thisgun
10년 전
accordionB 라는 ID element가 없어요.
n
nanati
10년 전
감사합니다... 그것때문에 움직이지 않는걸까요 ㅠ
t
thisgun
10년 전
아직 해결 못하셨어요?
n
nanati
10년 전
아-ㅅ -; 저 자바스크립트 아예 이해 못하고 있는데
선배가 고쳐보라면서 던져줬네요; 뭘 알아야 수정을 하죠 ㅋㅋ
그냥.. 이것저것 넣었다 뺐다 해보는 중입니다;-ㅅ -

댓글을 작성하려면 로그인이 필요합니다.

thisgun
10년 전

다시 설명해 드립니다.

 

아코디언이 잘 안되는 이유는

 

 

이 부분 때문에 안되는 건데요.

 

slider.init("accordionB",-1,"open");   <<< html 문서에 ID 인 accordionB 가 없어서 잘 안되는거에요. 

 

해결방법 1.

 

위에서

 

var slider=new accordion.slider("slider");

slider.init("accordionB",-1,"open");

 

이 부분을 지운다.

 

해결방법 2.

accordion.js 를 제가 처음 얘기 한대로 바꿔주시면 됩니다. 

 

잘 안되면 다시 얘기해 주세요.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

n
nanati
10년 전
감사합니다. 결국 그 부분을 삭제 하면 되는 거였어요 ㅠ ㅠ
개발자도구에서 적용하는데 자꾸 안되어서
본 사이트에 적용하니 그대로 되네요 -ㅅ -;; !!!
해결 해씀당 감사함당!!(__)꾸벅.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인