有没有办法在`jQuery`自定义`触发器'中设置'CallBack'?

时间:2017-04-06 14:57:31

标签: javascript jquery

我正试图从我的trigger接收器重播。使用jQuery自定义trigger活动。如果我错了,请纠正我。如果有办法,请告诉我..

我同意,我们可以在接收器中设置另一个触发器。但我们可以实施回调吗?

这是我的尝试:

var receiver = function() {    
  console.log('trigger received');
  return "Sending Hellow World!";
}

$(document).on("getReady", receiver);

var triggerer = function() {    
  var callBack = function(msg) {      
    console.log("msg received", msg);
  }

  $(document).trigger("getReady", callBack);
}

triggerer();

Live Demo

1 个答案:

答案 0 :(得分:1)

您可以使用$.trigger的第二个参数。它应该是一个数组的其他参数,将传递给您的自定义事件。

这样,您就可以传递回调并在receiver内使用它。

请注意,jQuery将始终将自己的事件对象作为第一个参数传递给receiver

var receiver = function(e, callback, otherParam){
  console.log('trigger received');
  callback && callback.call(e, "Sending Hello World! " + otherParam);
};

var triggerer = function(){
  var callBack = function(msg) {
    console.log("msg received", msg);
  };
  $(document).trigger("getReady", [callBack, 1337]);
};

$(document).on("getReady", receiver);

triggerer();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>