Добавление параметров функции с использованием одной переменной в jQuery - PullRequest
1 голос
/ 17 мая 2011

Я думал, можно ли передать переменную в функцию, которая должна быть выполнена при нажатии кнопки, а функция задана переменной.

Также параметры функций могут быть более одного, поэтому я разделил их на ,.

Так есть ли способ, которым я могу поместить параметры в функцию, используя любой плагин jQuery или функцию. Пожалуйста, помогите мне, потому что я запутался большое время! Вот мой текущий код jQuery:

function Func (a,b){
 alert(a+' | '+b);   
}
var Parameters = 'cool,123';
var Function = Func;

$('button').click(Function);

Демонстрация проблем

Заранее спасибо

Ответы [ 4 ]

3 голосов
/ 17 мая 2011

Вы можете использовать function.apply(). Передайте свой список параметров в виде массива, и вы даже можете установить область видимости, если вы хотите это сделать:

function myFunc(a,b){
    alert(a+", "+b);
}

var args = ["one", "two"];
var func = myFunc;

$('button').click(function(){
    func.apply(this, args);
});
2 голосов
/ 17 мая 2011

Это то, что вы ищете?

function Func (a,b){
 alert(a+' | '+b);   
}
var Parameters = 'cool,123';

$('button').click(function() {
    Func.apply(this, Parameters.split(","));
});

Демо: http://jsfiddle.net/6nJx7/14/

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply

1 голос
/ 17 мая 2011

Вот еще один способ сделать это, мне самому это нравится больше, потому что это несколько самодокументировано.Каждый из «параметров» в списке параметров имеет имя.

Это общий шаблон проектирования в библиотеках JavaScript для параметров модуля.

function Func (c){
 alert(c.a+' | '+c.b);   
}
var Parameters = { a : "cool", b: 123 };
var Function = Func;

$('button').click(Parameters );
1 голос
/ 17 мая 2011

Вы можете передать свои параметры в виде массива.

 function Func (a){
     alert(a[0]+' | '+a[1]);   
    }
    var Parameters = new Array(0,1);
    var Function = Func;

    $('button').click(Function(Parameters));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...