2012-06-06 2 views
1

다음 줄의 아이디어는 무엇입니까?mootools에서 컨텍스트없이 .fireEvent()를 호출

"팝업"은 어떤 종류의 이벤트입니까?

fireEvent('Popup','ok'); 
+1

흠, http : // mootools가 될 수 있습니다. net/docs/core/Element/Element.Event do ??? – Christoph

+0

downvote하지 마십시오. 이것은 전역 객체에 적용될 때 메소드에 컨텍스트를 추가하지 않은 사람들로 인해 몇 번이나 보였던 특이한 경우입니다. 그렇지 않은 경우 전역 함수 호출처럼 보이게하므로 혼란을 야기합니다 . 아마도 질문은 정확하게 묻지 않고 있지만 틀린 것은 아닙니다. 내 대답을 보라. –

답변

2
분명히

그것은을, (그리고 according to documentation)는 인수 'ok''Popup' 유형의 이벤트가 발생합니다. 이것은 사용자 정의 이벤트 유형과 같아서 정확히 무엇을하는지, 어떻게 해석 하는지를 알아 보려면이 이벤트를 처리하는 코드의 소스 또는 문서를 참조해야합니다.

5

이벤트는 일반적으로 2 가지 유형으로 나뉩니다. DOMEventClass.Event.

가장 일반적으로 후자가 중요합니다. this.fireEvent('popup', 'ok');은 놀라운 일이 발생했음을 인스턴스에 알립니다.

클래스에서 [Options,Events] 유지 mixin과 함께 사용

, 인스턴스가 만들어 된 경우 :

var foo = new someclass({ 
    onPopup: function(status) { 
     console.log(status); // ok! 
     console.log(this); // the instance (foo); 
    } 
}); 

// later. 
foo.fireEvent('popup', 'fail'); 

그러나 귀하의 경우에, 나는 확실하지 않다에 대한 클래스, 이유는

다양한 요소를 pub/sub로 이벤트를 실행할 수있는 DOM 요소와 같이 느슨하고 모호한 환경에서 이벤트를 사용할 수도 있습니다. 예. window.fireEvent('popup', 'ok'); - 또는 예제에서와 같이 fireEvent('popup') 만 있으면 다른 컨텍스트가 정의되지 않았으므로 전역 창 개체에 대한 이벤트 콜백이 실행됩니다.

이 당신과 같이 블록에 추가 한대로 작동합니다 :

window.addEvent('popup', function(status) { 

}); 

컨텍스트 객체를 입력하지는 범위 체인 조회뿐만 아니라 가독성 정말 엉터리입니다. 사실 fireEvent('domready')을 할 수 있다고해서 반드시해야한다는 것은 아닙니다. 누구나 썼다면 가독성을 높이 지 못하는 어리석은 단축키를 사용하는 것이 었습니다. fireEvent 자체가 프로토 타입에서 오는 expando 속성입니다. 게시 한 코드 당 하나 인 것처럼 보이지만 전역 변수/함수는 아닙니다 ...

관련 문제