Задание параметров при создании обратного вызова jQuery - PullRequest
0 голосов
/ 23 августа 2011

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

В плагине:

if (callback) {
    callback.call(var1, var2, var3);
}

Письменный обратный вызов:

$("#div").myplugin({callback: myfunction});
myfunction(biz,bar,bim) {
    alert("I love " + biz + " and " + bar + " and " + bim);
}

biz установлен на var2, bar установлен на var3, а bim не определен.

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Первый аргумент функции call является специальным:

fun.call(thisArg[, arg1[, arg2[, ...]]])

, где thisArg равно

Значение this, предоставленное для вызова fun.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

Итак, это будет работать, если вы передадите значение для thisArg:

callback.call(this, var1, var2, var3);

Или, прощене используйте call вообще, если вам не нужен this в обратном вызове:

callback(var1, var2, var3);
1 голос
/ 23 августа 2011

Я полагаю, что вы найдете ответ в этом сообщении .

В принципе, есть несколько способов достичь желаемой цели.Если вы посмотрите на пост до последнего примера, у вас есть строка args.push(arguments[i]);, которая может передать функции несколько параметров, используя только два аргумента для вызова apply.аналогично, вы должны поместить все аргументы функции во второй параметр метода вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...