2012-01-10 3 views
0

그래서 함수가 있고 익명 함수에 대한 참조로 함수를 만들고 제거 할 수 있기를 원합니다. 여러 객체에 동일한 함수를 만들 수있는 기능을 제공하기 위해이 작업을 수행하려고합니다. 현재 하나의 함수를 작성한 다음 다른 함수를 작성할 때 가장 최근의 참조로 참조를 겹쳐 쓰고 있으며 이전 참조를 제거 할 수 없다고 생각합니다.AddEventListener 동적 함수 참조 익명 함수

그래서이 같은 변수를 사용하여 참조를 동적으로 만들고 싶습니다.

image.addEventListener("click", 
    (Highlight + image.alt) = function(){ HighLightClick(this) }, false); 

다음이

TileClicked.removeEventListener("click", (Highlight + TileClicked.alt), false); 

처럼 제거 내가 TileClicked에 대한 변수를 만들 필요가 또는 어떻게 이것에 대해 갈 것 있나요?

답변

0

아마 같은 :

var functionMap = {}; 

funtionMap[Highlight + image.alt] = function(){ HighLightClick(this) }; 
image.addEventListener("click", funtionMap[Highlight + image.alt], false); 

TileClicked.removeEventListener("click", funcionMap[Highlight + TileClicked.alt], false); 
+0

난 당신이 (FunctionMap = funtionMap [하이라이트 + image.alt] 거짓 "클릭" image.addEventListener 작동이 같은 뭔가가 필요 알고 작동하지 않는다); 등호를 사용하면 참조를 호출하여 삭제할 수 있습니다. 동적으로 생성하고 설정하는 방법을 아는 것이 문제입니다. – Lordphartmore

+0

위 코드의 두 번째 줄은 'functionMap' 객체의 속성으로 함수를 설정하고 (동적으로 만들고 저장합니다)'이름 지정 '에 사용할 수 있습니다 (즉, 다른 이름은 필요하지 않습니다. 등호). – sje397

+0

그러나 addEventListener는 매우 다행입니다. 사실 image.addEventListener ("click", funtionMap, false); 그러나 당신이 뭔가를 사용할 때 작동합니다 : image.addEventListener ("click", funtionMap (this), false); 제대로 작동하지 않아서 anon 함수를 사용합니다. 자신의 방식대로 똑같은 일이 일어나고 있다고 생각하십시오. – Lordphartmore