>  기사  >  웹 프론트엔드  >  extjs는 event_extjs에 대한 인터셉터를 설정합니다.

extjs는 event_extjs에 대한 인터셉터를 설정합니다.

WBOY
WBOY원래의
2016-05-16 18:36:181550검색

먼저 이벤트를 정의해 보겠습니다.

코드 복사 코드는 다음과 같습니다.

person = function (이름 ) {
this.name = 이름;
this.addEvents("walk")
}
Ext.extend(person, Ext.util.Observable, {
정보: function( event) {
return this.name 'is' event 'ing.'
}
})
var person = new person('장민누')
person .on('walk', function() {
Ext.Msg.alert('event', person.name '걷고 또 걷는다.');
})

그런 다음 걷기 이벤트를 트리거하는 버튼을 정의합니다.
코드 복사 코드는 다음과 같습니다.

var btn = new Ext.Button({
id: 'walk',
text: '트리거 이벤트 버튼',
renderTo: Ext.getBody()
}); btn.on('click', function() {
person.fireEvent('walk');
})

버튼을 클릭하면 이벤트가 발생합니다. 효과는 아래와 같습니다. 표시:

이제 다음 코드와 같이 이벤트 트리거를 가로채기 위해 Capture() 함수를 사용합니다.

코드 복사 코드는 다음과 같습니다.
var btn2 = new Ext.Button({
id: 'cc',
text: '차단 이벤트',
renderTo : Ext.getBody()
})
btn2.on('click', function() {
Ext.util.Observable.capture( person, function() {
alert(' fsdjhf');
return
})
})


btn2 버튼을 클릭하면 대화 상자가 나타난 후 이벤트가 트리거되는 것을 확인할 수 있습니다. . . . 이제 false를 반환하도록 코드의 마지막 줄을 변경해 볼까요? 이벤트가 성공적으로 차단되었습니다!

이는 Capture()에서 처리 함수의 반환 값을 제어하여 특정 시간에 청취 기능을 계속 실행할지 아니면 이벤트 발생을 직접 중단할지 선택할 수 있는 기회를 제공합니다.

객체에 대해 여러 개의 캡처() 차단 기능을 설정할 수도 있습니다. 이러한 차단 기능은 처리 체인을 형성합니다. 차단 기능 중 하나라도 false를 반환하면 처리 프로세스가 중단됩니다.

releaseCapture() 함수는 Capture() 함수의 역동작으로, fireEvent()에 대한 모든 차단 기능을 한번에 삭제하지만 특정 차단 기능을 정확하게 삭제할 수는 없습니다. releaseCapture()가 실행되면 이전에 설정된 모든 차단 기능이 무효화됩니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.