2011-10-04 5 views
1

내가 JSHint을 통해 몇 가지 코드를 실행하는거야 내가 다음과 같은 오류가 계속 내에서 기능을하지 마십시오 오류보고가 중지되지 않습니다. JSHint의 제안을 여기에 사용하여 http://www.jshint.com/options/ 코드를 리팩토링하기로 결정했지만 여전히 오류가 발생합니다. 누군가가이 코드를 약간 리펙토링하도록 도와 줄 수 있기를 바랬다. 다음은이 함수의 복사본입니다.JSHint 오류가 루프

function setSounds(parent) { 
    var i, 
     l; 

    parent.getElements('.sound').each(function (elem) { 
     var soundEvents = []; 

     if (elem.get('fk_click_sound')) { 
      soundEvents.push('click'); 
     } 

     if (elem.get('fk_mouseover_sound')) { 
      soundEvents.push('mouseenter'); 
     } 

     if (soundEvents.length !== 0) { 
      for (i = 0, l = soundEvents.length; i < l; i += 1) { 
       elem.addEvent(soundEvents[i], (function() { 
        return function (e) { 
         FKSoundAIR(FKSoundStd[this.get('fk_' + e.type + '_sound')]); 
        }; 
       })(elem), false); 
      } 
     } 
    }); 
} 

저는 MooTools를 사용하고 있습니다. 이 함수의 목적은 부모 요소를 전달한 다음 'sound'클래스의 모든 자식에게 사운드 이벤트를 적용하는 것입니다. 'fk_click_sound'와 같은 사용자 정의 HTML 속성을 사용하여 함수에 추가 정보를 제공합니다. 루프 내에서 함수를 할당하는이 방법을 선택했습니다 (http://blog.jbrantly.com/2010/04/creating-javascript-function-inside.html).

나에게 지적 할 수있는 제안이나 리소스가 있으면 도움이 될 것입니다. 감사! ,

function make_handler(div_id) { 
    return function() { 
     alert(div_id); 
    } 
} 
for (i ...) { 
    div_id = divs[i].id; 
    divs[i].onclick = make_handler(div_id); 
} 
+0

오류가 발생 했습니까? 그것은 단지 경고 일 수 있습니다. – Blender

+0

이것은 단지 경고 일 뿐이지 만 빌드가 완료되는 것을 멈추게하는 개미 빌드 프로세스에서 갑자기 나타납니다. –

+0

@Spencer : 상단에서 편집 내용을 되돌리고 답을 솔루션으로 제출 한 다음 자신의 대답을 수락하여이 질문을 종료 할 수 있습니까? 그러면 답변이없는 질문 목록에서 제거됩니다. 건배! –

답변

1

당신은 이런 식으로 뭔가를 시도 할 수 있습니다.

1

당신은 외부 함수를 만들 수있는 var에 할당하고 addEvent에 전화에서 사용 :

1

JS Hint가 밝힌 바에 따르면 here으로 고정 된 함수의 루핑에 대한 경고가 다시 나타납니다. 이제이 문제가 해결되었으므로이 문제는 해결되었습니다.

+0

문제가 해결되지 않았습니다. 질문의 텍스트를 jshint.com에 붙여 넣으십시오. 나는 당신의 연결이 다른 것에 관한 것이라고 생각합니다. –