まずイベントを定義しましょう:
person = function (名前) {
this.name = name;
this.addEvents("walk");
Ext.extend(person, Ext.util.Observable, {
情報: function(event) {
return this.name 'is' イベント 'ing.'
}
}); . on('walk', function() {
Ext.Msg.alert('event', person.name '歩いて歩いてください。');
});次に、walk イベントをトリガーするボタンを定義します。
コードをコピー
}); btn.on('click', function() {
person.fireEvent('walk');
});
ボタンがクリックされるとイベントがトリガーされます。効果は次のとおりです。 表示:
次に、次のコードに示すように、capture() 関数を使用してイベントのトリガーをインターセプトします。
コードをコピー
コードは次のとおりです:
btn2.on('click', function() {
Ext.util.Observable.capture( person, function() {
alert(' fsdjhf');
return
});
btn2 ボタンをクリックすると、ダイアログ ボックスが表示された後、イベントがトリガーされることがわかります。 。 。 。次に、コードの最後の行を変更して false を返すようにしてみてください。イベントは正常に傍受されました!
これにより、capture() の処理関数の戻り値を制御することで、特定の時間にリッスン関数の実行を継続するか、イベントの発生を直接中止するかを選択する機会が与えられます。
オブジェクトに対して複数の Capture() インターセプト関数を設定することもできます。これらのインターセプト関数は、いずれかのインターセプト関数が false を返す限り、処理プロセスは中止されます。
releaseCapture() 関数は、capture() 関数の逆の操作です。これは、fireEvent() のすべてのインターセプト関数を一度にクリアしますが、それによって特定のインターセプト関数を正確に削除することはできません。 releaseCapture() が実行されると、以前に設定されていたすべてのインターセプト関数が無効になります。