2017-04-06 130 views
0

我試圖從我的trigger接收器重播。使用jQuery定製trigger事件。如果我錯了,請糾正我。如果有辦法做到這一點,請讓我知道..有沒有辦法在`jQuery`自定義`trigger`中設置'CallBack'?

我們可以在接收器中設置另一個觸發器,我同意。但我們可以實現回調?

這裏是我的嘗試:

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

此代碼是非常令人費解。你想達到什麼樣的行爲? –

+0

我''返回'在'接收器'的值,我想'callBack'聽到相同的可能嗎? – 3gwebtrain

+0

首先,您需要描述觸發自定義事件時想要發生的事情嗎? – funcoding

回答

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>

相關問題