2010-04-06 57 views
4

想要在javascript中使用观察者模式和JQuery,但触发器和绑定不起作用。我怎么做才能得到“警报('通知绑定');”跑?感谢;)jquery,Javascript和观察者模式

(function($){ 
    var NoteApp = function(){ 
     var self = this; 
     this.notifications = []; 
     this.EVENT = { 
       NOTIFY: 'notify' 
     }; 
     this.button = { 
       ask_number: $('#ask-number'), 
       ask_email: $('#ask-mail'), 
       ask_out: $('#ask-out') 
     }; 

     var Button = function(){ 

     }; 


     var Data = function(app){ 

      $(app.notifications).bind(app.EVENT.NOTIFY, function(){ 
       alert('notify binded'); 
      }); 

     }(this); 


     var UI = function(app){ 

      app.button.ask_number.bind(app.EVENT.NOTIFY, function(){ 
       alert('notify 2'); 
      }); 

      app.button.ask_number.click(function(){ 
       //alert(app.EVENT.NOTIFY); 
       $(app.notifications).trigger(app.EVENT.NOTIFY); 
       return false; 
      }) 


     }(this); 
    } 

    NoteApp = new NoteApp(); 
})(jQuery); 

回答

2

以下是关于你的代码几句话:

  1. notifications阵列始终是空的 - []。代码中没有任何内容将元素放入其中,因此bind函数没有任何结果。
  2. NoteApp = new NoteApp();应在DOM准备就绪或ask_number,ask_emailask_out元素尚未初始化时调用。
+0

已经解决了。问题与绑定和触发器,因为他们没有很好地工作,所以我做了一个新班。 – 2010-04-07 12:49:33