2 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
放在$(function(){})
里面跟放在外面,作用域不一樣了,后者是全局作用域。
你這里用了setInterval
,第一個(gè)參數(shù)用的是字符串,這里跟setTimeout
類似,可以參考MDN的描述>>
字符串會(huì)在全局作用域內(nèi)被解釋執(zhí)行,所以當(dāng)setTimeout()函數(shù)執(zhí)行完畢后,字符串中的變量不可用.
留意第一句話,字符串會(huì)在全局作用域內(nèi)被解釋執(zhí)行,那么如果你把scro
放在里面的話,全局就找不到scro
了。
我試著在console運(yùn)行一下驗(yàn)證代碼:
你看第二個(gè),輸出的是執(zhí)行外部的t
的結(jié)果,這里看下第一個(gè),就是怎么調(diào)用到里面的t
的方式。用一個(gè)function(){}
包裹,而不直接用字符串。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊
這段代碼我覺得從實(shí)踐上并不是很優(yōu)化,我從我的思路幫你寫一下,參考一下
var $con = $('#con1'), intID
function setInt(){
intID = setInterval(function(){
$con.animate({marginTop:'-24px'},500,function(){
$(this).css({'margin-top':'0px'}).find('li:first').appendTo(this);
});
},500);
}
setInt()
$con.hover(function(){
clearInterval(intID);
},function(){
setInt()
})
添加回答
舉報(bào)