它看起來像一個函數聲明:
function(i)
{
// .....
}
所以i
是被傳遞到該函數的值由內(其被聲明爲inline作爲匿名功能)作爲它的第一個參數,據推測您正在傳遞函數的retarder
方法的工作方式。
重新編寫代碼,以便它是一個位更具可讀性使這是一個有點清晰:
ul.css(
{
width: 10,
overflow: 'visible'
}
).retarder(100, function(i)
{
i.css('visibility', 'visible').animate(
{
width: ul[0].wid,
left:-50
},
{
duration: 500,
complete: function()
{
ul.css('overflow', 'visible');
}
}
);
}
);
然後你就可以把它改寫成甚至清晰的:
ul.css(
{
width: 10,
overflow: 'visible'
}
).retarder(100, functionToPassToRedtarder);
function functionToPassToRetarder(i)
{
i.css('visibility', 'visible').animate(
{
width: ul[0].wid,
left:-50
},
{
duration: 500,
complete: functionToPassToComplete
}
);
}
function functionToPassToComplete()
{
ul.css('overflow', 'visible');
}
來源
2010-08-20 19:34:00
Rob
這是一個匿名函數作爲參數。因此,我是該函數接受的第一個參數。 retarder方法調用函數say,callback(10,11,12),從而爲i提供一個值。在這種情況下,我= 10,其他一切都被丟棄。 – srcspider 2010-08-20 20:01:04
順便說一句,'i'對於這個論點來說是一個可怕的名字,把它改爲描述性的東西 – 2011-03-03 09:16:10