2014-07-23 3 views
1

외부 본문 요소의 이벤트 위임을 섀도우 요소에 추가 할 수있는 방법이 있습니까?폴리머로 이벤트 위임

예를 들어 anchorclass="special"으로 클릭 할 때마다 특수 기능이 실행되기를 바랍니다. (JQuery와의)

일반적으로는 :

$('body').on('click', 'a.special', myFunction);

그러나이 적어도 모든 것과 내가 해봤 그림자 DOM을 사용하여 가능하지 않는 것 같습니다. 일부 템플릿에 나타나는 것처럼이 핸들러를 a.special의 모든 인스턴스에 추가해야합니까? 당신의 예에서

답변

1

, 당신은 여전히 ​​사용자 지정 요소와 함께 이벤트 위임을 사용할 수 있습니다

$('body').on('click', 'my-element', myFunction); 

차이를 내 요소 대신하여 요소의 그림자 DOM의 내부 a.special에서 온 같은 이벤트가 보일 것입니다 . event model이 그림자 타겟팅의 구현 세부 사항을 숨기기 위해 타겟 변경을하기 때문입니다.

또한 a.special을 클릭하면 이벤트를 발생하여 요소 내부에 설치 리스너 수 있습니다 http://www.polymer-project.org/articles/communication.html#utilizing-event-delegation 더 정교한 뭔가를

, 폴리머 사이트의 Communication & Message Passing을 확인하십시오. 특히, <core-signals>은 pubsub-like 패턴으로 사용될 수 있습니다.

+1

'event.path'는 undisguised 타겟에 대한 더 많은 정보를 줄 수 있음에 유의하십시오. 이것은 문제 해결사이지만 캡슐화가 중단되므로 가급적 사용하지 마십시오. –

+0

정보를 제공해 주셔서 감사합니다. 그래서 그림자 돔으로 글로벌 이벤트 위임 패턴을 실제로 가질 수없는 것 같습니다. 당신이 제공 한 예제를보고 이미 모든 웹 사이트의 문서를 읽었지만, (특히 * 중첩 된 템플릿 *으로) 폴리머 접근 방식을 따르고 사고 방식을 바꾸어야합니다 ... @ 스캇 마일즈 : 너는 길을 설명 할 수 있니? 내가 이벤트 개체에서 볼 수 있지만 1) 경로 속성에 대한 문서를 찾을 수없고 2) 빈 노드 목록 (나를 위해) – anson