Latest web development tutorials

jQuery.Callbacks()メソッド

jQueryのその他の方法 jQueryのその他の方法

$ .Callbacksのリストにコールバック関数を追加します。

$(ファンクション () { 関数 FN1( { 警告 );} 関数 FN2( { FN1(「FN2は言う: "+の値);リターン 偽;} VAR コールバック= $コールバック();. 。コールバックは、(追加 FN1 ); // 出力:fooの! コールバック。火災( 「フー!」 );.コールバックを追加します( FN2 ); // 出力:バー、FN2は言う:バー! コールバック。火災( 「バー!」 );})

»をお試しください

定義と使用法

$ .Callbacksは()コールバック関数の列の右のを管理するための強力な方法を提供し、オブジェクトの多目的コールバックリストを参照します。

ヒント:このようなアヤックスなどの内部使用のためのjQueryで$ .Callbacks、$繰延およびその他のコンポーネントは、基本的な機能のための機能を提供します。 また、独自のプラグインを開発することなど、いくつかの構成要素に同様の機能を使用することができます。


文法

$.Callbacks( flags )

参数 描述
flags 可选。 String类型 一个用空格标记分隔的可选列表,用来改变回调列表中的行为


例

より多くの例

ここではコールバックリストの例から特定のコールバックを削除する.remove()のです

$(ファンクション () { 関数 FN1( { 警告 );} 関数 FN2( { FN1(「FN2は言う: "+の値);リターン 偽;} VAR コールバック= $コールバック();. 。コールバックは、(追加 FN1 ); // 出力:fooの! コールバック。火災( 「フー!」 );.コールバックを追加します( FN2 ); // 出力:バー、FN2は言う:バー! コールバック。火災( 「バー!」 );.コールバック(削除します FN2 ); // 出力のみfoob​​arに、FN2は削除されました。 コールバック。火災( "FOOBAR" );})

»をお試しください


サポートされているフラグパラメータ

flagsパラメータには、スペースで区切られたフラグの構造は、コールバックリストの動作(例えば$ .Callbacks( 'ユニークstopOnFalseを'))を変更するために、オプションのリストをマークし、$ .Callbacks()はオプションのパラメータです。
以下は、利用可能なフラグのとおりです。

参数 描述
once 确保这个回调列表只执行一次
memory 缓存上一次fire时的参数值,当add()添加回调函数时,直接用上一次的参数值立刻调用新加入的回调函数
unique 确保一次只能添加一个回调,不会重复添加
stopOnFalse 某个回调函数返回false之后中断后面的回调函数

ここでは例$ .Callbacks(「一回」)のであり、

$(ファンクション () { 関数 FN1( { 警告 );} 関数 FN2( { FN1(「FN2は言う: "+の値);リターン 偽;} VAR コールバック = $。コールバック( "一度" );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); / * 出力のみ:FOO * / })

»をお試しください

ここでは例$ .Callbacks(「メモリ」)のです

$(ファンクション () { 関数 FN1( { 警告 );} 関数 FN2( { FN1(「FN2は言う: "+の値);リターン 偽;} VAR コールバック = $。コールバック( 「メモリ」 );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); / * 出力:FOOのFN2は言う:fooのバーFN2は言う:バーfoob​​arの* / })

»をお試しください

ここでは例$ .Callbacks(「ユニーク」)は、のです

$(ファンクション () { 関数 FN1( { 警告 );} 関数 FN2( { FN1(「FN2は言う: "+の値);リターン 偽;} VAR コールバック = $。コールバック( "ユニーク" );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN1 ); //繰り返し加え コールバック。追加( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); / * 出力:fooのバーFN2は言う:バーfoob​​arの * / })

»をお試しください

ここでは例$ .Callbacks(「stopOnFalse」)のであり、

$(ファンクション () { 関数 FN1( { 警告 );戻り 偽;} 関数 FN2( { FN1( 「Fn2がは言う: "+値 );戻り 偽;} VAR コールバック = $。コールバック( 「StopOnFalse " );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN2 );.コールバック火災( "バー" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); / * 出力:fooのバーfoob​​arの* / })

»をお試しください

$ .Callbacks()は複数のフラグのリスト(識別)は一つだけ、累積効果は次のように、存在していないサポート "&&"。
ここでは例$ .Callbacks( 'ユニークなメモリ」)のであり、

$(ファンクション () { 関数 FN1( { 警告 );戻り 偽;} 関数 FN2( { FN1( 「Fn2がは言う: "+値 );戻り 偽;} VAR コールバック = $。コールバック( 「ユニークなメモリ」 );.コールバックを追加します( FN1 );.コールバック火災( "フー" );.コールバックを追加します( FN1 ); //繰り返し加え コールバック。追加( FN2 );.コールバック火災( "バー" );.コールバックを追加します( FN2 );.コールバック火災( "バズ" );.コールバック(削除します FN2 );.コールバック火災( "FOOBAR" ); / * 出力:FOOのFN2は言う:fooのバーFN2は言う:バーバズFN2は言う:バズfoob​​arにします* / })

»をお試しください

$ .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 " )。(パブリッシュ 「ウー!メール! " ); / * 出力:ハローワールドFN2は言う:こんにちは、世界はメール* /を懇願します!!!! })

»をお試しください

さらに$ .Deferredsの使用を向上させるには、特定のタスクが完了(または解決)されたときに、パブリッシャが唯一の加入者に通知を発行していることを確認することができます。 次のサンプルコードを参照してください。

$(ファンクション () { 関数 FN1( { 警告 );戻り 偽;} 関数 FN2( { FN1( 「Fn2がは言う: "+値 );戻り 偽;} VAR トピック= {} ;. jQueryのトピック =関数( イド { VAR コールバック、メソッド、話題にid = &&トピック[ イド ];もし (!トピック { 。コールバック= jQueryのコールバック();トピック= { 公開::.購読、コールバックの火を 、コールバックが追加:.退会コールバックが削除されます。 };もし イド { トピック [ イド ] =トピック;} } リターン トピック;}; // mailArrived通知を購読 $。トピック( 「MailArrived " )。(購読 FN1 ); // 新しいオブジェクトの代替遅延$ .Deferredsを作成します。 VAR 。DFD = $繰延(); // 新しい記事(直接解放されない)を定義 VAR トピック = $。トピック( 「MailArrived " ); // 遅延が受け入れられ、加入者への告知 DFD。(なさ トピック。パブリッシュ ); / * ここに戻って、加入者のメッセージ遅延に渡されますが受理され、実際にはメッセージのみいったん解放ので、Ajax呼び出しが完了するために(例えば、)待って複雑な手順を統合することが可能です。 * / // 完了しました。 DFD。(解決 「私が リリースされました! " );})

»をお試しください


jQueryのその他の方法 jQueryのその他の方法