ホームページ  >  記事  >  ウェブフロントエンド  >  extjs は、event_extjs のインターセプターを設定します

extjs は、event_extjs のインターセプターを設定します

WBOY
WBOYオリジナル
2016-05-16 18:36:181550ブラウズ

まずイベントを定義しましょう:

コードをコピー コードは次のとおりです:

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 イベントをトリガーするボタンを定義します。



コードをコピー

コードは次のとおりです: var btn = new Ext.Button({ id: 'walk', text: 'トリガーイベントボタン', renderTo: Ext.getBody()
}); 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() が実行されると、以前に設定されていたすべてのインターセプト関数が無効になります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。