2014-11-13 4 views
1

계산기 작성 및 DOM 업데이트에 따라 스택에있는 사람들의 도움을 받아 만든 스크립트가 있습니다. 나는 최근 JSHint를 가지고있는 에디터로 에디터를 변경했다. 나는 누군가가 통찰력을 줄 수 있기를 바라는 확률 오류를 내게 주었다.JSHint가 홀수 오류를 반환 함

주된 기능은 "루프를 사용하여 기능을 만들지 마십시오."는 .addEventListener 배열 푸시를 나타냅니다. 왜 이것이 문제이며, 내가 왜 이렇게해야합니까?

var currentFunction = []; 

    function pushToArray(v){ 
     currentFunction.push(v); 
     addtoScreen(v); 

    } 

    function addtoScreen(vTag){ 

     var screen = document.getElementById("screen"); 

     if(currentFunction.length == 1){ 
     var newCalc = document.createElement("p");  
     newCalc.className = "calc"; 

     var opInt = document.createElement("span"); 
     opInt.innerHTML = vTag; 

     newCalc.appendChild(opInt); 
     screen.appendChild(newCalc); 
     }else if(vTag == "="){ 
     var opInt = document.createElement("span"); 
     opInt.innerHTML = vTag; 

     }else{ 
     var opInt = document.createElement("span"); 
     opInt.innerHTML = vTag; 

     newCalc = screen.lastChild; 

     if(newCalc){ 
      newCalc.appendChild(opInt); 
     }else{ 
     screen.appendChild(opInt); 
     } 
     } 
    } 

    var numbers = document.getElementsByTagName("button"); 

    for(var i = 0; i < numbers.length; i++){ 
     if(numbers.item(i).id != "equalButton"){ 
     numbers.item(i) 
      .addEventListener("click", function(){pushToArray(this.value);}); 
     } 
    } 

답변

0

함수가 루프 내에있는 경우 모든 반복에서 함수가 생성됩니다. 루프 밖에서 함수를 선언하고 루프 내에서 함수를 호출하십시오. 또는 jshint ignore에 loopfunc : true 태그를 추가 할 수 있습니다. 내가 로 쓴

+0

'.addEventListener ('클릭 ', pushToArray (this.value))는' 그래도 작동하지 않았다. 그러면 그것을 쓰는 올바른 방법은 무엇입니까? –

관련 문제