2013-09-03 4 views
0

와 함께 작동하지 않는, 그리고 6으로 제대로 작동하지 않습니다 ( 이 getElementsByClassName.polyfill.js을 적용한 후 Internet Explorer 8 일했다.) 사람이 어떤 문제를 찾을 수 아래 스크립트에서 firefox, ie7, ie6가 작동합니까? (크롬과 사파리는 미세하기 전에 polyfill.js을 적용했다.)이 자바 스크립트를 열고 클릭하여 범주의 여러 수준을 닫을 수 있도록 설계되었습니다파이어 폭스, IE7과 IE6이 자바 스크립트 아래의 자바 스크립트, 파이어 폭스, IE7와

.

/*------------------------------------------ 
Open or close the specified node. 
------------------------------------------*/ 
function openOrClose(tgt){ 

//To make the list visible when the specified node is hidden. 
if(tgt.style.visibility == "hidden"){ 
    tgt.style.display = "block"; 
    tgt.style.visibility = "visible"; 

    tgt.style.height = "auto"; 
    tgt.style.paddingTop = "0.25em"; 
    tgt.style.lineHeight = "1em"; 
    tgt.style.opacity = 1.0; 

} 
//To make the list hide when the specified node is not hidden. 
else{ 
    tgt.style.display = "none"; 

    tgt.style.visibility = "hidden"; 
    tgt.style.height = "0px"; 
    tgt.style.paddingTop = "0"; 
    tgt.style.lineHeight = 0; 

    tgt.style.opacity = 0; 
    } 
    } 

    /*------------------------------------------ 
    To open the list 
    ------------------------------------------*/ 
    function listopen(lv, num){ 
    var tgt = document.getElementsByClassName("level" + lv)[num]; 

    //To search the next level -> to open the next level list. 
    for(var i=0; i < document.getElementsByClassName("level" + (lv+1)).length; i++){ 
    var next_tgt = document.getElementsByClassName("level" + (lv+1))[i]; 
    //li 

    if (next_tgt.parentNode == tgt || next_tgt.parentNode.parentNode == tgt){ 
     openOrClose(next_tgt); 
    } 
    } 
    //To search the next level -> change the shape of the button that is displayed. 
    for(var i=0; i < tgt.childNodes.length; i++){ 
    var next_tgt = tgt.childNodes[i]; 
    //ul 
    if(next_tgt.tagName == "UL"){ 
     if(next_tgt.style.height == "0px"){ 
      if(event.srcElement.parentNode.className == "category_header plus"){ 
       event.srcElement.innerText = '?'; 
       event.srcElement.parentNode.className = "category_header minus"; 
      } 
      next_tgt.style.height = "auto"; 
     } 
     else{ 
      for(var i=0; i<next_tgt.parentNode.childNodes.length; i++){ 
       if(event.srcElement.parentNode.className == "category_header minus"){ 
        event.srcElement.innerText = '+'; 
        event.srcElement.parentNode.className = "category_header plus"; 
       } 
      } 
      next_tgt.style.height = "0px"; 
     } 
     } 
     } 
     } 

    /*------------------------------------------ 
    To set up the click event 
    ------------------------------------------*/ 
     function setclickevent(tgt, lv, num){ 
     //To make invisible when the level is other than 1. 
     if(lv!=1){ 
    tgt.style.visibility = "hidden"; 
    tgt.style.display = "none"; 
    tgt.style.height = "0px"; 
    tgt.style.lineHeight = 0; 
    tgt.style.paddingTop = 0; 
    tgt.style.paddingBottom = 0; 
    if(tgt.parentNode.tagName == "UL"){ 
     tgt.parentNode.style.height = "0px"; 
     tgt.parentNode.style.margin = "0"; 
     tgt.parentNode.style.padding = "0"; 
     tgt.parentNode.style.border = "none"; 
     } 
     } 
     var hasLink_flg; 
     if(tgt.childNodes.length){ 
    for (var j = 0; j < tgt.childNodes.length; j++) { 
     //To enlarge the scope where you can click. 
     if(tgt.childNodes[j].tagName == 'A'){ 
      tgt.setAttribute('onclick', 'location.href="' + 
    tgt.childNodes[j].getAttribute('href') + '"'); 
     } 
     //To add the event function of the accordion list 
     else if(tgt.childNodes[j].tagName == 'UL'){ 
      //To display ? and add the list open function. 
      var linkObj = document.createElement("a"); 
      linkObj.innerText = '+'; 
      tgt.childNodes[0].className="category_header plus"; 
      tgt.childNodes[0].appendChild(linkObj); 
      j++; 
      linkObj.parentNode.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')'); 

      //tgt.setAttribute('onclick', 'listopen(' + lv + ',' + num + ')'); 
      break; 
      } 
     } 
     } 
     } 

     /*------------------------------------------ 
     Initialization 
     ------------------------------------------*/ 
     // To search all the node that has level? class and initiali 
     function initCategoryList(){ 
     var lv = 0; 
     //To add the click event to all the node that has level? 
     while(document.getElementsByClassName("level" + (++lv)).length){ 
     for (var i = 0; i < document.getElementsByClassName("level" + lv).length; i++) { 
     setclickevent(document.getElementsByClassName("level" + lv)[i], lv, i); 
      } 
      } 
     } 
+2

모든 오류? – Phil

+0

사람들이 여전히 IE6을 지원합니까 ??? – sevenseacat

+0

몇 가지 CSS 오류가 있으며 그 중요성을 알 수 없으며 Java 스크립트 자체에서 하나의 참조 오류 "이벤트가 정의되지 않았습니다." –

답변

0

내가 tgt.style.display = "없음"을 알 수 없기 때문에, // IE6,7,8,9,10, FF, CHORME 로 괜찮 그러나 tgt.style.opacity = 0; // IE8과 함께 작동하지 않습니다.

난 당신이 jQuery를 적용하고 브라우저의 차이를 방지하기 위해 jQuery를 문장을 작성하는 것이 좋습니다.

같은 $ (TGT)은 .hide 또는 : $ (TGT) .CSS ({디스플레이 "없음"신장 "0 픽셀"}); 브라우저 콘솔 (방화범, 등)에

+0

자바 스크립트에서 jQuery로 변환하는 것이 얼마나 힘들겠습니까? 이런 상황에 대한 변환기가 있습니까? 좋은 제안과 감사합니다. 당신이 에 jQuery.js을 적용한 경우 –

+0

, 당신은 오래 당신이 grammar.Read 매뉴얼을 따라로

관련 문제