.click jQuery - параметры передачи к функции пользователя

Я пытаюсь вызвать функцию с параметрами с помощью .click jQuery, но я не могу заставить его работать.

Это - то, как я хочу, чтобы это работало:

$('.leadtoscore').click(add_event('shot'));

который звонит

function add_event(event) {
    blah blah blah }

Это работает, если я не использую параметры, как это:

$('.leadtoscore').click(add_event);
function add_event() {
    blah blah blah }

Но я должен смочь передать параметр до моего add_event функция.

Как я могу сделать эту определенную вещь?

Я знаю, что могу использовать .click(function() { blah }, но я звоню add_event функция от нескольких мест и хочет сделать это этот путь.

274
задан Peter Mortensen 15 November 2015 в 11:27
поделиться

2 ответа

Вам необходимо использовать анонимную функцию, например:

$('.leadtoscore').click(function() {
  add_event('shot')
});

Вы можете вызвать ее, как в примере, просто имя функции без параметров , например:

$('.leadtoscore').click(add_event);

Но метод add_event не получит 'shot' в качестве параметра, а скорее всего, что click передаст ему обратный вызов, то есть ] event сам объект ... поэтому он не применим в этом случае , но работает для многих других. Если вам нужно передать параметры, используйте анонимную функцию ... или, есть один другой вариант , используйте .bind () и передавайте данные, например:

$('.leadtoscore').bind('click', { param: 'shot' }, add_event);

И доступ это в add_event , вот так:

function add_event(event) {
  //event.data.param == "shot", use as needed
}
77
ответ дан 23 November 2019 в 02:11
поделиться

Если вы вызовете это так, как вы это сделали...

$('.leadtoscore').click(add_event('shot'));

...вам нужно, чтобы add_event() возвращала функцию, например...

function add_event(param) {
    return function() {
                // your code that does something with param
                alert( param );
           };
}

Функция возвращается и используется как аргумент для .click().

35
ответ дан 23 November 2019 в 02:11
поделиться
Другие вопросы по тегам:

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