2011-03-11 22 views
3

你好我怎麼可以傳遞變量到這個功能如何在jQuery的參數傳遞到函數功能後淡出

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

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

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

它已經提供給你。 – thirtydot 2011-03-11 14:00:37

+0

爲什麼不能使用它?它看起來100%正確?你確定「$(」#sideNewsContent_menu li「)。index($(this))+ 1」正在返回一個值 – 2011-03-11 14:01:09

+0

你剛剛做到了! (好吧,你沒有「通過」它,但它是可用的。) – 2011-03-11 14:04:05

回答

4

你可以使用的事實, 「_index」 可以在封閉使用正在定義:

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

在JavaScript中,當你定義一個匿名函數(閉包)時,你可以使用當前上下文中存在的所有變量(「this」是一個特殊的關鍵字除外)。

+0

這就是他已經做的。他只是不知道。 – 2011-03-11 14:03:40

+0

@ jerome-wagner thnx – 2011-03-11 14:05:58

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); 
});