一個簡單的jquery 事件訂閱

(function($) {

  var o = $({});

  $.subscribe = function() {
    o.on.apply(o, arguments);
  };

  $.unsubscribe = function() {
    o.off.apply(o, arguments);
  };

  $.publish = function() {
    o.trigger.apply(o, arguments);
  };
}(jQuery));

function a(){
  var a = 1;
  var b = 2;
  $.publish('done',[a,b]);
}
//這裏一定要return function 。其實這裏就是$('selector').on('event',function(eventobj,a,b){----})
//的function部分
function b(){
  return function(_,a,b){//這裏跳過第一個event對象參數
      console.log('param get:'+a+' & '+b);
  }
}
//訂閱done事件,第二參數傳遞b(),而不是b
$.subscribe('done',b());
//執行a方法,內部發布done事件
a();
//解除訂閱
$.unsubscribe('done');

參考

Javascript異步編程的4種方法

jQuery Tiny Pub/Sub

Js apply方法詳解

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章