2017-04-06 2 views
0

Ich versuche, Replay von meinem trigger Empfänger zu bekommen. mit jQuery benutzerdefinierte trigger Ereignis. Wenn ich falsch liege, korrigiere mich bitte. Wenn es eine Möglichkeit gibt, dies zu tun, lassen Sie es mich wissen.Gibt es eine Möglichkeit, 'CallBack' in `jQuery` benutzerdefiniertem` Trigger` zu setzen?

Wir können einen anderen Trigger im Empfänger einstellen, stimme ich zu. Aber können wir Callback implementieren?

hier ist mein Versuch:

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

+2

Dieser Code ist sehr verworren. Welches Verhalten versuchen Sie zu erreichen? –

+0

Ich bin 'Return' ein Wert bei' Empfänger' und ich möchte das gleiche bei 'CallBack' hören, ist das möglich? – 3gwebtrain

+0

Zunächst müssen Sie beschreiben, was Sie tun möchten, wenn Sie das benutzerdefinierte Ereignis auslösen. – funcoding

Antwort

1

Sie können zweiten Parameter von $.trigger verwenden. Es sollte ein Array von zusätzlichen Parametern sein, die an Ihr benutzerdefiniertes Ereignis übergeben werden.

Auf diese Weise können Sie Ihren Rückruf weitergeben und innerhalb receiver verwenden.

Beachten Sie, dass jQuery immer sein eigenes Ereignisobjekt als ersten Parameter an receiver übergeben wird.

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>

Verwandte Themen