Nie można zwrócić wartość z wyzwalaczem, ale można przechowywać informacje na wiele różnych sposobów, jednym ze sposobów jest za pomocą obiektu jako parametr:
//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
Innym sposobem jest użycie jQuerys .data()
metoda
//event
$("element").on("click", function() {
$(this).data("userId", 2);
});
//trigger
$("element").trigger("click").data("userId") //2
Inną rzeczą, jaką możesz zrobić, to modyfikując zmienną, która jest zadeklarowana poza zdarzenia, a następnie używając go po wywołaniu spust lub przechowywanie go jako właściwość w elemencie, który ma zdarzenie z this
słów kluczowych takich jak to:
//inside the event function
this.userId = 2;
//outside the event
$("element").trigger("click").get(0).userId
Nadzieję, że to pomaga.
Edit:
Również spojrzeć na @Arm0geddon answer poniżej, używając .triggerHandler()
, tylko uważaj, że ma pewne skutki uboczne, jak nie przepuszczając górę hierarchii DOM.
możliwy duplikat [Użyj jQuery .trigger, aby wywołać niestandardową funkcję, która zwraca wartość] (http://stackoverflow.com/questions/3142724/use-jquery-trigger-to-call-a-ustom-funkcja- ta-zwraca-wartość-wartości) –