知識ポイント:
1. カスタム イベントとイベント サブスクリプション
2. トリガー、バインド、バインド解除メソッドの使用
3. 名前空間イベントによるカスタマイズ
次の内容を txt ドキュメントに貼り付けてから、firebug コンソールに直接貼り付けて実行します。
/*
JQuery カスタム イベント アプリケーション- Javascript OO
ある会社のフロントエンドデザイン部門で働くレビンというハンサムな男がいます。彼の上司はハンサムな男 A で、彼のマネージャーはかわいい女の子 B です。
リーダーたちは、時間をかけてこの男の仕事を毎週見てみたいと考えていました。 。 。
Levin は毎週月曜日に Google ドキュメントを使用して先週の作業の概要を書く必要があり、書き終えたら MSN で A と B に通知する必要があります。 。 。
Levin は毎週の要約を喜んで作成しますが、次のような提案をしました。
Google ドキュメントで書いているので、読みたい場合は、Google リーダーを使用してドキュメントの更新を購読してください。私は Microsoft の MSN を使いたくないです。 。 。
ここで…AさんとBさんは数秒間カラスを頭上に浮かべていましたが、快諾してくれました。
*/
//クラスメートの Levin です
var Levin={name:"Levin"};
Levin=$(Levin);
// 週ごとの要約を書きます。毎週
Levin.bind("evt_weeklyReport" ,function(evt){
alert(this.name "叫ぶ: はい! 毎週の概要が書かれました。")
});
//スーパーバイザーA
var A={name:"Handsome Guy A"};
//彼は Levin の毎週の概要を購読したいと考えています
A.rssLevin=function(){
Levin.bind("evt_weeklyReport.fromA",function(evt,data){
alert(A) .name ": まあ、悪くない、レビンはかなりポジティブです) ! ")
})
}
A.rssLevin();
;
var B={name:"メイメイ B "};
// 彼女は Levin の週次サマリーも購読しています
B.rssLevin=function (){
Levin.bind("evt_weeklyReport.fromB",function(evt,data){
alert(B. name ": 週次の概要は後で読む予定です。まず、彼が言及した Web サイトを見てください。");
window.location=evt.site;
}; );
// Levin が毎週の概要を書くたびに、Google ドキュメントを使用して公開します
Levin.trigger({type:"evt_weeklyReport",site:"http://jb51.net"}); 🎜>
//マネージャー B はある日突然捜湖に行き、Levin の週次サマリーの購読をやめました...
[code]
B.unRssLevin=function(){
alert("私は副大統領になるために捜湖に行きます、笑");
Levin.unbind( "evt_weeklyReport.fromB");
}(); html]
//B さんは転職しましたが、週次サマリーを予定通りにリリースする必要があります。 。 。
コードをコピーします