Non è possibile restituire un valore da un trigger, ma è possibile memorizzare le informazioni in molti modi diversi, un modo è utilizzando un oggetto come parametro:
//event
$("element").on("click", function(event, informationObj) {
informationObj.userId = 2; //you have to access a propery so you can modify the original object
});
//trigger
var informationObj = {userId : 0};
$("element").trigger("click", [informationObj ]); //informationObj.userId === 2
altro modo è usare jQuerys .data()
metodo
//event
$("element").on("click", function() {
$(this).data("userId", 2);
});
//trigger
$("element").trigger("click").data("userId") //2
Un'altra cosa che puoi fare è modificare una variabile che viene dichiarata al di fuori della manifestazione e poi di usarlo dopo aver chiamato il grilletto, o immagazzinarla come una proprietà in l'elemento che ha l'evento con la parola chiave this
in questo modo:
//inside the event function
this.userId = 2;
//outside the event
$("element").trigger("click").get(0).userId
Speranza che aiuta.
Edit:
Inoltre, dare un'occhiata a @Arm0geddon answer di seguito, utilizzando .triggerHandler()
, state attenti che ha alcuni effetti collaterali, come se non zampillante la gerarchia DOM.
possibile duplicato di [Utilizzare jQuery .trigger per chiamare una funzione personalizzata che restituisce un valore] (http://stackoverflow.com/questions/3142724/use-jquery-trigger-to-call-a-custom-function- that-returns-a-value) –