2017-04-06 126 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>

相关问题