Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

JS назначить кнопке функцию с аргументом

3294747 Знаток (421), на голосовании 8 лет назад
Добрый день.
Не понимаю как назначить кнопке функцию ф которую передается аргумент
без аргмента пишу : $ ("#btn") . click( function). А если нужна function(аргумент),
Если пишу $ ("#btn") . click( function(аргумент)), то в момент назначения эта функция и вызвается
Дополнен 8 лет назад
У меня есть кнопка, я на нее переназначаю функции в зависимости от ситуации. Просто одна из функции должна принимать аргумент
Голосование за лучший ответ
Jengar Гуру (3108) 8 лет назад
А для чего тебе это нужно, объясни?
A_A Мудрец (17757) 8 лет назад
Ну объяви локальную функцию (прям в объявлении click тело допиши). Только и правда вопрос - зачем это?)
3294747Знаток (421) 8 лет назад
локальную не очень наверно хорошо, потому что эта функция нужна и в другом месте, не повторять же код.
A_A Мудрец (17757) Да, в таком случае нехорошо. Просто как вы собираетесь передавать аргументы в функцию, вызываемую по клику, если метод click ничего не передает? Можно попробовать запереть вашу функцию внутри локальной, тогда можно будет передать в нее какую-то локальную переменную или глобальную (последнее желательно бы оправдать). Вроде вот этого. Правда не гарантирую ничего по поводу сохранности значений, так как на js не писал какое-то время. for(i=0; i<1; i++){ $ ("#btn") . click(function(){ index = i; UrFunction(index); }); }
Ice Мыслитель (5252) 8 лет назад
Вы хотите передать какое-то конкретное значение, снизить арность функции? Вот пара вариантов, хотя конечно надо знать в каком контексте вы это используете.

$('#btn').click(myFunction.bind(that,myArgument));
$('#btn').click(()=>myFunction(myArgument));
3294747Знаток (421) 8 лет назад
that это как бы ссылка на саму себя, + аргумент?
Ice Мыслитель (5252) that - это переменная, которая должна содержать контекст, в рамках которого будет выполнена функция myFunction, т. е. где-то раньше вы эту переменную должны объявить и присвоить ей контекст. Если контекст неважен, можно передать null или this.
Саня Семенов Оракул (60497) 8 лет назад
Говнокод но если уж приспичело то можно функцию обертку использовать
Похожие вопросы