Как в jQuery передать параметры в функцию после функции fadeOut - PullRequest
4 голосов
/ 11 марта 2011

Привет, как я могу передать переменную в эту функцию

var _index = $("#sideNewsContent_menu li").index($(this)) + 1;

$("#sideNewsContent_body").fadeOut(300, function (index) {

     //HERE i want to use variable _index
});

Ответы [ 2 ]

4 голосов
/ 11 марта 2011

вы можете использовать тот факт, что "_index" может использоваться в определяемом вами замыкании:

var _index = $("#sideNewsContent_menu li").index($(this)) + 1;
$("#sideNewsContent_body").fadeOut(300, function () {
 alert(_index);
});

В javascript, когда вы определяете анонимную функцию (замыкание), вы можете использовать всепеременные, которые существуют в текущем контексте (кроме «this», которое является специальным ключевым словом).

1 голос
/ 11 марта 2011

Это уже в объеме.Только не ставьте var _index где-либо в функции, иначе будет создана локальная переменная с именем _index, которая будет иметь приоритет над переменной _index в замыкании.

var _index = $("#sideNewsContent_menu li").index($(this)) + 1;

$("#sideNewsContent_body").fadeOut(300, function (index) {

     _index++;

     alert(_index);
});

Не делай этого:

$("#sideNewsContent_body").fadeOut(300, function (index) {

     var _index = _index++;

     alert(_index);
});
...