jQuery如何在函数fadeOut之后将参数传递给函数

时间:2011-03-11 13:57:59

标签: jquery fadeout

您好我如何将变量传递给此函数

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

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

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

2 个答案:

答案 0 :(得分:4)

您可以使用“_index”可以在您定义的闭包中使用的事实:

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

在javascript中,当你定义一个匿名函数(一个闭包)时,你可以使用当前上下文中存在的所有变量(除了“this”这是一个特殊的关键字)。

答案 1 :(得分:1)

它已经在范围内了。请确保不要将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);
});