jQuery.Callbacks()メソッド
jQueryのその他の方法
例
$ .Callbacksのリストにコールバック関数を追加します。
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
関数 FN2( 値 ) {
FN1(「FN2は言う: "+の値);リターン 偽;}
VAR コールバック= $コールバック();. 。コールバックは、(追加 FN1 );
コールバック。火災( 「フー!」 );.コールバックを追加します( FN2 );
コールバック。火災( 「バー!」 );})
»をお試しください
定義と使用法
$ .Callbacksは()コールバック関数の列の右のを管理するための強力な方法を提供し、オブジェクトの多目的コールバックリストを参照します。
ヒント:このようなアヤックスなどの内部使用のためのjQueryで$ .Callbacks、$繰延およびその他のコンポーネントは、基本的な機能のための機能を提供します。 また、独自のプラグインを開発することなど、いくつかの構成要素に同様の機能を使用することができます。
文法
参数 |
描述 |
flags
|
可选。 String类型 一个用空格标记分隔的可选列表,用来改变回调列表中的行为 |
より多くの例
ここではコールバックリストの例から特定のコールバックを削除する.remove()のです
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
関数 FN2( 値 ) {
FN1(「FN2は言う: "+の値);リターン 偽;}
VAR コールバック= $コールバック();. 。コールバックは、(追加 FN1 );
コールバック。火災( 「フー!」 );.コールバックを追加します( FN2 );
コールバック。火災( 「バー!」 );.コールバック(削除します FN2 );
コールバック。火災( "FOOBAR" );})
»をお試しください
サポートされているフラグパラメータ
flagsパラメータには、スペースで区切られたフラグの構造は、コールバックリストの動作(例えば$ .Callbacks( 'ユニークstopOnFalseを'))を変更するために、オプションのリストをマークし、$ .Callbacks()はオプションのパラメータです。
以下は、利用可能なフラグのとおりです。
参数 |
描述 |
once
|
确保这个回调列表只执行一次 |
memory
|
缓存上一次fire时的参数值,当add()添加回调函数时,直接用上一次的参数值立刻调用新加入的回调函数 |
unique
|
确保一次只能添加一个回调,不会重复添加 |
stopOnFalse
|
某个回调函数返回false之后中断后面的回调函数 |
ここでは例$ .Callbacks(「一回」)のであり、
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
関数 FN2( 値 ) {
FN1(「FN2は言う: "+の値);リターン 偽;}
VAR コールバック = $。コールバック( "一度" );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" );
})
»をお試しください ここでは例$ .Callbacks(「メモリ」)のです
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
関数 FN2( 値 ) {
FN1(「FN2は言う: "+の値);リターン 偽;}
VAR コールバック = $。コールバック( 「メモリ」 );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); 言う:バーfoobarの* /
})
»をお試しください ここでは例$ .Callbacks(「ユニーク」)は、のです
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
関数 FN2( 値 ) {
FN1(「FN2は言う: "+の値);リターン 偽;}
VAR コールバック = $。コールバック( "ユニーク" );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN1 //繰り返し加え
コールバック。追加( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); * /
})
»をお試しください ここでは例$ .Callbacks(「stopOnFalse」)のであり、
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );戻り 偽;}
関数 FN2( 値 ) {
FN1( 「Fn2がは言う: "+値 );戻り 偽;}
VAR コールバック = $。コールバック( 「StopOnFalse " );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" );
})
»をお試しください $ .Callbacks()は複数のフラグのリスト(識別)は一つだけ、累積効果は次のように、存在していないサポート "&&"。
ここでは例$ .Callbacks( 'ユニークなメモリ」)のであり、
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );戻り 偽;}
関数 FN2( 値 ) {
FN1( 「Fn2がは言う: "+値 );戻り 偽;}
VAR コールバック = $。コールバック( 「ユニークなメモリ」 );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN1 //繰り返し加え
コールバック。追加( FN2 );.コールバック火災( "バー" );.コールバックを追加します( FN2 );.コールバック火災( "バズ" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); 言う:バーバズFN2は言う:バズfoobarにします* /
})
»をお試しください $ .Callbacks方法は、例えば、分離することができます。
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );}
VAR ...コールバック= $コールバック( )、=コールバックが追加、=コールバックを削除、火災=コールバックの火災;.追加( FN1 );ファイア( 「こんにちは 」 );(取り外し FN1 );
})
»をお試しください
$ .Callbacks、$ .Deferredとパブリッシュ/サブスクライブ
疎結合とアプリケーションの効率的な通信の背後にある一般的な考えのパブ/サブ(オブザーバーパターン)。 オブザーバーはまた、観察されたオブジェクトを指す加入者、として知られています。 観測者(出版社)イベントが発生したときにユーザーに通知します。
プレゼンテーションコンポーネント、唯一のコールバック関数のリストを作成する$ .Callbacks()のように、あなたは、パブ/サブシステムを実現することができます。 キューとして$ .Callbacksの記事は、記事パブリッシュおよびサブスクライブを達成するために、次のように行うことができます。
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );戻り 偽;}
関数 FN2( 値 ) {
FN1( 「Fn2がは言う: "+値 );戻り 偽;}
VAR トピック= {} ;. jQueryのトピック =関数( イド ) {
VAR コールバック、メソッド、話題にid = &&トピック[ イド ];もし (!トピック ) {
。コールバック= jQueryのコールバック();トピック= {
公開::.購読、コールバックの火を 、コールバックが追加:.退会コールバックが削除されます。
};もし ( イド ) {
トピック [ イド ] =トピック;}
}
リターン // $。トピック( 「MailArrived " )。(購読 FN1 );. $トピック( 「MailArrived " )。(購読 FN2 );. $トピック( 「MailSent " )。(購読 FN1 ); $。トピック( 「MailArrived " )。(パブリッシュ 「こんにちは !」 );. $トピック( 「MailSent " )。(パブリッシュ 「ウー!メール! " ); メール* /を懇願します!!!!
})
»をお試しください さらに$ .Deferredsの使用を向上させるには、特定のタスクが完了(または解決)されたときに、パブリッシャが唯一の加入者に通知を発行していることを確認することができます。 次のサンプルコードを参照してください。
例
$(ファンクション () {
関数 FN1( 値 ) {
警告 ( 値 );戻り 偽;}
関数 FN2( 値 ) {
FN1( 「Fn2がは言う: "+値 );戻り 偽;}
VAR トピック= {} ;. jQueryのトピック =関数( イド ) {
VAR コールバック、メソッド、話題にid = &&トピック[ イド ];もし (!トピック ) {
。コールバック= jQueryのコールバック();トピック= {
公開::.購読、コールバックの火を 、コールバックが追加:.退会コールバックが削除されます。
};もし ( イド ) {
トピック [ イド ] =トピック;}
}
リターン // $。トピック( 「MailArrived " )。(購読 FN1 );
VAR 。DFD = $繰延(); //
VAR トピック = $。トピック( 「MailArrived " );
DFD。(なさ トピック。パブリッシュ );
DFD。(解決 「私が リリースされました! " );})
»をお試しください
jQueryのその他の方法