Задать вопрос

JQuery как передать аргументы функции?

Доброго всем дня.
Подскажите знающие люди, как можно передать несколько аргументов (не известное кол-во) и один установленный аргумент.
Например, у ссылки:
<a href="#" onclick="heshLan('onfunc', 17, 20, 86, 1, 13)">GO</a>

Где 'onfunc' - это всегда передается, то есть его нужно принять (мб и 'twofunc'), где 17, 20, 86, 1, 13 - это не всегда так, т.е. мб и 3 числа и 7, и 10. и 20.
Тем самым JQuery:
function heshLan(w, {числа}) {
if(w == 'onfunc') {
/*берем эти числа для одной задачи ранее делал arguments[i]*/
} else if(w == 'twofunc') {
/*берем эти числа для другой задачи*/
}
}

Думаю доходчиво все объяснил, заранее спасибо!

UPD: Спасибо большое за ваши ответы! Но я сделал проще использовал arguments[0] - т.к. необходимый мне параметр передавался первым, а далее уже циклично все остальные arguments.
  • Вопрос задан
  • 2271 просмотр
Подписаться 2 Оценить Комментировать
Решение пользователя Сергей Сергей К ответам на вопрос (2)
hahenty
@hahenty
('•')
Предлагаю слегка изменить функцию heshLan
function heshLan(w) {
  if( w in functionList ) {
    functionList[w].apply( this,  [].slice.call( arguments, 1 ) );
  }
}

и добавить список обработчиков куда-нибудь глобально (по области видимости)
var functionList = {
  'onefunc' : function( a, b, c, d ) {
    /*че-то одно*/
  },
  'twofunc' : function( a, b ) {
    /*че-то другое*/
  },
  'threefunc' : function( a, b, c, d, e, f, g ) {
    /*совсем че-то*/
  }
  /*и так далее*/
}

Здесь будет явное указание функций и их параметров по именам, выбирать по индексу в массиве аргументов не придется.

я бы так сделал
Ответ написан
Комментировать