2012-07-26 2 views
1

누구든지 라이브러리 나 이벤트를 구현하는 데 사용할 수있는 패턴을 알고 DOM을 거치지 않고 자바 스크립트 개체 그래프에 이벤트 버블 링? 간단히 말해서, 다른 클래스의 인스턴스를 포함하는 클래스의 인스턴스가 있고 그래프/체인을 버블 링 할 수있는 하위 클래스의 이벤트를 트리거하려고합니다.자바 스크립트 DOM 외부 개체 이벤트 및 이벤트 버블 링

제안 사항?

답변

0

bob.js framework은 사용할 수있는 이벤트 메커니즘을 제공합니다. 이벤트의 객체로서 또는 bob.js에게 객체에 함수를 생성하도록 요청하십시오. 읽기가 더 깨끗 여기에 두 번째 접근 방법이다 (약 아래 버블 링주의 참조)

var DataListener = function() { 
    var fire = bob.event.namedEvent(this, 'received'); 
    this.start = function(count) { 
     for (var i = 0; i < count; i++) { 
      fire(i + 1); 
     } 
    }; 
}; 
var listener = new DataListener(); 
listener.add_received(function(data) { 
    console.log('data received: ' + data); 
}); 
listener.start(5); 
// Output: 
// data received: 1 
// data received: 2 
// data received: 3 
// data received: 4 
// data received: 5 

버블 링 : bob.js는 (적어도 지금) 버블 링을 지원하지 않습니다. 게다가, 부모에 정의 된 이벤트가 자식에 정의 된 이벤트와 비슷할 경우 버블 링이 가능합니다 (DOM DOM 요소가있는 경우에는 그렇지만 항상 DOM 객체가 아닌 경우). 그러나 임시 해결 방법으로 자식 이벤트 리스너를 사용하여 부모 객체에서 이벤트를 발생시킬 수 있습니다. 즉, 효과는 버블 링과 같습니다.

+0

나는 OP가 버블 링에 대해 구체적으로 질문했다고 생각합니다. – Bergi

+0

당신이 눈치 챘을 때 나는 버블 링에 대한 대답도 언급했습니다. – Tengiz

+0

예, 라이브러리가 지원하지 않습니다 ... 물론 모든 이벤트/pubsub 라이브러리에서'child.addListener (parent.trigger)'에 의해 버블 링을 모방 할 수 있습니다 :-) – Bergi