2014-04-10 2 views
0

if 문은 cBox 변수만을 다루기 때문에 HTML은 필요하지 않습니다. 이것은 무엇입니까, 만들기 또는 버튼을 클릭하면 div를 닫습니다, 나는 기능을 테스트하고 그들은 작동하지만, 작동하지 않는 것은 이러한 함수가 호출되는 방식입니다, 나는 출력을 기록했지만 그 중 어느 것도 표시하지 않습니다. 콘솔에서 이것은 어떤 이유로 든 코드가 if 문을 통해 실행되지 않는다는 것을 의미합니다.왜이 if 문이 아무 것도하지 않습니까?

btnPress.onclick = function formConfirm() { 
    var cBox = document.getElementById('cBox'); 
    console.log(" but cbox is "+cBox); 
    if(cBox) { 
     closecBox(); 
     console.log("cbox exists, closing ..."); 
    } else { 
     opencBox(); 
     console.log("cbox does not exist, creating..."); 
    } 
}; 
+2

'이것은 어떤 이유로 코드가 if 문을 실행하지 않는다는 것을 의미합니다.'맞습니다. 왜 달리지 않는지에 관해서는 우리는 전혀 모른다. 'btnPress'는 무엇입니까? – Adam

+6

내가 이해하고 있는지 확인하기 위해 ... "하지만 cbox is ..."로그를 얻었지만 "exist"또는 "does not exist"중 하나가 아닌가? –

+4

아마도 코드가'closecBox' 또는'opencBox'의 내부에서 깨지고 있습니다. 오류가 있습니까? – Goose

답변

1

내가 당신의 질문을 이해하지만이 작동하는 것 같다 코드를 경우처럼 확실하지 않다 ...

또한 if (cBox == null)으로 시도하고 작동하지 않습니다 fiddle

function closeBox(elem){ 
     elem.parentNode.removeChild(elem); 
     } 
    function openBox(el){ 
     var el = document.createElement('div'); 
     el.setAttribute("id", "cBox"); 
     document.body.appendChild(el); 
     } 

    var btnPress = document.getElementById('button'); 

    btnPress.onclick = function formConfirm() { 
     var cBox = document.getElementById('cBox'); 
     if(cBox) { 
      closeBox(cBox) 
      console.log("cbox exists, closing ..."); 
     } else { 
      openBox(cBox); 
      console.log("cbox does not exist, creating..."); 
     } 
    }; 

너의 질문을 이해하지 못한다면 시간 낭비를해서 유감이다.

0

얘들 모든 답변 주셔서 감사합니다, 당신의 힌트는 확실히이 문제를 해결하기위한 도움이되었다, 나는 트랙을 잃었지만이

var btnPress = document.getElementById('theBtn'); 
btnPress.onclick = function formConfirm() { 
    var cBox = document.getElementById('confirmBox'); 
     console.log("cbox is "+cBox); 
    if(cBox) { 
     console.log("cbox exists, closing ..."); 
     closecBox(); 
    } else { 
     opencBox(); 
     console.log("cbox does not exist, creating..."); 
    } 
}; 

function opencBox() { 
    var cBox = document.createElement('div'); 
    cBox.id = "confirmBox"; 
    document.body.appendChild(cBox); 
    cBox.style.display="inline"; 
}; 

function closecBox() { 
    var cBox = document.getElementById('confirmBox'); 
    cBox.style.display="none"; 
    document.body.removeChild(cBox); 
}; 

내가도에 표시 스타일을 사용하는 작업 코드입니다 많은 변경을 애니메이션으로 몇 가지 다른 것들을 테스트 해보십시오 :) 다시 한 번 모든 코멘트에 대해 감사드립니다! 그들은 정말로 해결책을 찾아내는 것을 도왔습니다!

관련 문제