개발 Q&A

제목 SCRIPT5007: 정의되지 않음 또는 null 참조인 display 속성을 가져올 수 없습니다. ??
글쓴이 람이 작성시각 2014/07/18 10:10:07
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 28233   RSS
IE9 에서만 저 오류가 발생하고 동작하지 않습니다.

구글 검색한 결과

이부분을 수정하래서 해 봐도 동일하구요.
 

자바스크립트 소스

function fnListTabMenuCart3(cs, pid, cid, n, obj){
 var node = $('.'+ cs + ' > ul > li').size();
 //alert(n);
 for ( i=1; i<=node; i++){
  $('#'+ pid + i).attr('class', '');
  $('#'+ cid + i).attr('style', 'display:none');
 }
 $('#'+ pid + n).attr('class', 'on');
 if(eval(obj+".style.display == 'block'")) {
  if( lay_chenk != n && n < 3) {
   if(lay_chenk > 0) {
    $('#'+ cid + lay_chenk).attr('style', 'display:none');
   }
   eval(obj + ".style.display='block';");
   $('#'+ cid + n).attr('style', 'display:block');
   lay_chenk = n;
  } else {
   eval(obj + ".style.display='none';");
   for ( i = 1; i < node; i++){
    $('#'+ pid + i).attr('class', '');
   }
   $('#'+ cid + n).attr('style', 'display:none');
   lay_chenk = 0;
  }

 } else if(eval(obj +".style.display == 'none'")) {
  eval(obj + ".style.display='block';");
  $('#'+ cid + n).attr('style', 'display:block');
  lay_chenk = n;
 }
}

 

호출하는 부분

<li class="cart_tab_tit02"><a href="#cart_tab_tit2" onclick="fnListTabMenuCart2('new_cart_tabmenu', 'cart_tab', 'cart_tab_tit', 2, 'ShopViewCart')" id="cart_tab2"><span>옵션선택하기1</span></a></li>

 

 

호출 후 레이어 띄우는 부분

<div id="ShopViewCart" style="display:none;">
 <div class="new_cart_tab_wrap" id="cart_tab_tit1" style="display:none;" >
  <div class="new_cart_tab01">
   <ul class="ct_title" style="overflow-y:auto;overflow-x:hidden;height:300px">
    <li class="cfirst">상품명</li>
    <li>옵션</li>
    <li>수량</li>
    <li>합계</li>

 

위 소스가 다른 익스 버전에서는 상관이 없는데 유독 익스9 에서만 버튼을 클릭하면 굵게 표시한 부분에서 다음과 같은 오류가 발생 합니다.

 

SCRIPT5007: 정의되지 않음 또는 null 참조인 'display' 속성을 가져올 수 없습니다.

 

구글에서 검색해 보니

<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 이부분을 수정하라던데 수정해도 안되더군요..

위와 같은 오류는 어떻게 해결해야 하나요 ?
문제가 되는 소스 부분인데요...
eval(obj+".style.display == 'block'"
이 부분들이 모두 익스9에서만 에러가 발생하네요.

익스7,8,10,11, 크롬, 파폭에서는 이상이 없는데 ㅠ.ㅜ
혹시 어떻게 수정해야 할지 아시는 분 ????
도와 주세요 ㅠ.ㅜ
 
 다음글 jquery 초보 질문 부탁드립니다. (2)
 이전글 view페이지에서 페이지데이터갱신 (1)

댓글

letsgolee / 2014/07/18 21:19:10 / 추천 0
eval을 남발했네요. eval은 좋은 코드습관이 아닙니다.

obj는 div의 id이므로 $('#'.obj)를 사용하세요. 그러면 $('#'.obj).css('display') == 'none'이라면 $('#'.obj).show()를 쓴다든지 할 수 있습니다.