Я пытаюсь вызвать функцию с параметрами с помощью .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
функция от нескольких мест и хочет сделать это этот путь.
Вам необходимо использовать анонимную функцию, например:
$('.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
}
Если вы вызовете это так, как вы это сделали...
$('.leadtoscore').click(add_event('shot'));
...вам нужно, чтобы add_event()
возвращала функцию, например...
function add_event(param) {
return function() {
// your code that does something with param
alert( param );
};
}
Функция возвращается и используется как аргумент для .click()
.