Я пытаюсь вызвать функцию с параметрами, используя jcuery'sclick, но не могу заставить ее работать.
Вот как я хочу, чтобы это работало:
$('.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
функцию из нескольких мест и хочу сделать это таким образом.
jquery
function
parameter-passing
Пол Хоффер
источник
источник
patricks
ответа, который я считаю отличным решением: jsfiddle.net/naRRk/1Ответы:
Для тщательности я наткнулся на другое решение, которое было частью функциональности, представленной в версии 1.4.3 обработчика событий нажатия jQuery .
Он позволяет передавать карту данных объекту события, который автоматически возвращается в функцию-обработчик события jQuery в качестве первого параметра. Карта данных будет передана
.click()
функции в качестве первого параметра, за которой следует функция обработчика событий.Вот некоторый код, чтобы проиллюстрировать, что я имею в виду:
Я знаю, что уже поздно в игре на этот вопрос, но предыдущие ответы привели меня к этому решению, так что я надеюсь, что это поможет кому-нибудь когда-нибудь!
источник
var param_obj = {data : {param1: "Hello", param2: "World"}}; cool_function(param_obj);
?Вам нужно использовать анонимную функцию, например:
Вы можете вызвать его, как в примере, просто имя функции без параметров, например:
Но
add_event
метод не получит'shot'
его как параметр, а скорее то, чтоclick
передается в его обратный вызов, которым является самevent
объект ... так что он не применим в этом случае , но работает для многих других. Если вам нужно передать параметры, использовать анонимную функцию ... или, есть один другой вариант, использовать.bind()
и передавать данные, как это:И получить доступ к нему
add_event
, как это:источник
click
обработчику. В.bind()
приведенном выше анонимном методе и примерах, которые вы можете использоватьthis
, он будет ссылаться на тот, на который.loadtoscore
вы нажали (как и следовало ожидать). В последнем примере внутриadd_event(event)
то же самое верно, используйтеthis
или,$(this)
и это будет то, что вы хотите.function(){ add_event('shot', $(this));}
иfunction add_event(event, element){...}
.element
здесь будет элемент jQuery (он работает,bind()
хотя, как упоминал Ник).$(this)
внутри функции, например: jsfiddle.net/tSu5tЕсли вы называете это так, как вы это сделали ...
... вам нужно будет
add_event()
вернуть функцию, как ...Функция возвращается и используется в качестве аргумента для
.click()
.источник
event
параметр. Я должен был включить это. : o)Я успешно использовал .on () примерно так:
Затем внутри
add_event
функции вы получаете доступ к «выстрелу» следующим образом:См. Документацию .on () для получения дополнительной информации, где они предоставляют следующий пример:
источник
Да, это старый пост. Независимо от этого, кто-то может найти это полезным. Вот еще один способ отправки параметров в обработчики событий.
источник
Установите объект javaScript для элемента onclick:
получить объект из элемента "this":
источник
Я получаю простое решение:
Я имею в виду, что передаю
onclick
событие value вjavascript function sendData()
, инициализируем переменную и принимаю его методом обработчика событий jquery.Это возможно, поскольку сначала вызывается
sendData(valueid)
и инициализируется значение. Затем после события jquery get выполняется и использует это значение.Это прямолинейное решение, а для получения подробной информации перейдите по ссылке .
источник