JQuery: возвращение значения из триггера

Я использую триггерный вызов, чтобы получить значение из настраиваемого события, но я хочу, чтобы он возвращал значение, и оно дает мне объект Object только тогда, когда я выполняю следующий вызов:

var user_id=$("#my_div").trigger("get_id", [username]);

Моя функция события триггера выглядит так:

$("#my_div").on("get_id", function(e, username){
    var user_id;
    if (username='fred'){
        user_id=1;
    }
    else if(username='mario'){
        user_id=2;
    }
    return user_id;
});
25
задан gdoron is supporting Monica 4 February 2012 в 23:05
поделиться

3 ответа

Что вы можете сделать, это использовать .triggerHandler() вместо .trigger(). Это вернет значение.

var user_id=$("#my_div").triggerHandler("get_id", [username]);
24
ответ дан 28 November 2019 в 18:27
поделиться

Функция trigger не возвращает значение, которое вы возвращаете из обработчика событий.

Возвращает jQuery object ...

.trigger (eventType [, extraParameters]) Возвращает: jQuery

документы

Это было разработано, чтобы вы могли писать такие вещи, как это :

$("#my_div").trigger("get_id", [username]).val('foo').css('color', 'red');
1
ответ дан 28 November 2019 в 18:27
поделиться

triggerHandler - правильный ответ, но стоит отметить, что я еще не видел его здесь ... Вы также можете передать другой обратный вызов, и ваша функция «on» вызовет переданный обратный вызов, чтобы установить некоторое возвращаемое значение и т.д. при условии, что по какой-то причине лучше не ждать.

0
ответ дан 28 November 2019 в 18:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: