2011-03-18 2 views
0

특정 노드 내부에서 클릭이 발생하는지 확인하려고합니다. 이렇게하는 것에 대한 내 생각은 각 노드가 클릭 이벤트 대상인지 테스트하여 노드와 루프를 모두 자손으로 가져 오는 것입니다.모든 자손 위로 반복 yui3/javascript

지정된 노드의 모든 자손을 가져 오는 가장 좋은 방법은 YUI3에 무엇이 있는지 잘 모르겠습니다. yui3에서 복잡하다면 일반 JS에서이 작업을 수행 할 수 있습니다. 나는 누군가가 이것을하는 더 좋은 방법을 가지고 있다면 또 다른 접근법에 대해서도 개방적이다.

도움을 미리 감사드립니다.

답변

0

나의 현재 솔루션 :

나는 YUI를하지 않는다,하지만 당신은 여기 YUI3에 이벤트 위임에 읽을 수 있습니다 같은 문제. 개선 사항을 게시 할 수 있습니다.

function isChild(targetNode, wrapperNode) { 
     var descendants = wrapperNode.all('*'); 
     var counter = 0; 
     descendants.each(function(node) { 
      if(node == targetNode) { 
       counter++; 
      } 
     }); 
     return (counter > 0) ? true : false; 
    } 
0

나는 상황을 이해하면 관심있는 노드에 클릭이 발생할 수있는 노드가 포함되어 있습니다. 이 경우 클릭 이벤트가 상위 노드까지 버블 링되므로 해당 노드에서 클릭을 수신하면 충분합니다.

그런 다음 다시 한 번 당신이해야 할 일이 더 복잡 할 수도 있습니다.이 경우 오해하는 경우 사과드립니다.