3gwebtrain
3gwebtrain

Reputation: 15297

Is there a way to set 'CallBack' in `jQuery` custom `trigger`?

I am trying to get replay from my trigger receiver. using jQuery custom trigger event. if I am wrong please correct me. If there is a way to do this, Please let me know..

We can set another trigger in receiver, I agree. but can we implement callback?

here is my try:

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

Upvotes: 0

Views: 41

Answers (1)

Wiktor Bednarz
Wiktor Bednarz

Reputation: 1553

You can use second parameter of $.trigger. It should be an array of additional parameters that will be passed to your custom event.

That way, you can pass your callback and use it inside receiver.

Note that jQuery will always pass its own event object as a first parameter to 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>

Upvotes: 1

Related Questions