2012-04-28 4 views

답변

1

당신은 청취자로 전달하는 대신 context 함수를 호출하고 있습니다.

divs[i].addEventLisenter('click', context(divs[i].id), true); 

은 다음과 같아야합니다 :이 말은,

divs[i].addEventLisenter('click', context, true); 

그리고이 :

function context(id) { 
    console.log(id+' clicked'); 
} 

가 있어야한다 :

function context(evt) { 
    console.log(this.id + ' clicked'); 
} 
+0

아, 재미 있습니다 ... 내가 원하는 것을하기 위해 다른 방법을 찾았지만. (즉, 컨테이너 div에 click 이벤트를 추가하고 자식 div의 event.target.id를 가져옵니다. –

+0

@Charles, 당신이하고있는 일은 매우 유용합니다! 새 자식을 컨테이너에 동적으로 추가하면 클릭 리스너 위의 전통적인 방법과는 달리 그들에게도 효과가 있습니다. "이벤트 위임"이라고합니다. – bfavaretto

-1

JavaScript가 해석되므로 JavaScript를 사용하는 경우 위에 docINIT 정의를 이동해야합니다.

+0

반드시 그런 것은 아니다 - 해석 된 것은 그것과 관련이 없다. 자바 스크립트 변수 호이스트를 살펴보십시오. 이 함수는 존재할 수 있고 범위 내에서 정의 될 수 있습니다. – tkone

+0

tkone이 정확합니다. 여러 응용 프로그램에서 docINIT에 대한 레이아웃 메서드를 사용했지만 문제가 없었습니다. –

관련 문제