第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

jquery作用域問題求教

jquery作用域問題求教

紅糖糍粑 2019-03-13 18:19:58
這樣一段代碼'''javascript$(function(){    var ti=null;            ti=setInterval('scro("#con1")',500);    $('#con1').hover(function(){        clearInterval(ti);      },function(){        ti=setInterval('scro("#con1")',500);    })})function scro(obj){    $(obj).animate({marginTop:'-24px'},500,function(){        $(this).css({'margin-top':'0px'}).find('li:first').appendTo(this);      });     };'''為什么把函數(shù)scro放到$(function(){})里面,函數(shù)就會(huì)報(bào)錯(cuò)而不執(zhí)行,求指教,謝謝。
查看完整描述

2 回答

?
繁星點(diǎn)點(diǎn)滴滴

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)證代碼:
https://img1.sycdn.imooc.com//5cb18b92000171f706930192.jpg

你看第二個(gè),輸出的是執(zhí)行外部的t的結(jié)果,這里看下第一個(gè),就是怎么調(diào)用到里面的t的方式。用一個(gè)function(){}包裹,而不直接用字符串。


查看完整回答
反對 回復(fù) 2019-04-13
?
絕地?zé)o雙

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()

    })


查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 605 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號