第四周第五天筆記

  • 定時器考題
<body>
<div class="wrap">
    <p id="link">按鈕</p>
    <div id="div1">0</div>
</div>
<script>
    //需求:給按鈕添加一個點擊事件崎脉,當(dāng)點擊按鈕時罪治,數(shù)字每500ms增加1干厚,當(dāng)再次點擊按鈕時,數(shù)字變化停止突硝,使用setTimeout()方法测摔;
    var olink=document.getElementById("link");
    var odiv=document.getElementById("div1");
    var count=0;
    olink.style.cursor="pointer";
    var bOk=true;//此刻bOk相當(dāng)于一個開關(guān);
    var timer=null;
    olink.onclick=function () {
        if(bOk){
            //此時存在一個問題解恰,就是當(dāng)點擊按鈕時锋八,數(shù)字會立刻變?yōu)橄乱粋€數(shù),所以需要再添加一個setTimeout()來延遲變數(shù)字护盈;
            setTimeout(changeCount,1000);
        }else{
            clearTimeout(timer);
        }
        bOk=!bOk;//相當(dāng)于一個開關(guān)挟纱,通過不同的布爾值,進行停止與開始黄琼;
        function changeCount(){
            odiv.innerHTML=++count;
            timer=setTimeout(arguments.callee,1000);//在使用setTimeout定時器遞歸時樊销,調(diào)用自身函數(shù),可以用arguments.callee;
        }
    };
</script>
</body>
  • 考題知識點:
    • 1)var bOk=true;,bOk用作一個開關(guān)脏款;當(dāng)每次點擊后围苫,改變bOk的布爾值,來進行不同的操作撤师,bOk=!bOk;指的是每執(zhí)行一次點擊事件剂府,就改變一下bOk的值;
    • 2)arguments.callee指的就是本身函數(shù)剃盾,用在setTimeout定時器遞歸時腺占,調(diào)用自身。
    • 注意點:存在一個問題痒谴,就是當(dāng)點擊按鈕時衰伯,數(shù)字會立刻變?yōu)橄乱粋€數(shù),所以需要再添加一個setTimeout()來延遲變數(shù)字积蔚;
  • 添加一個點擊事件意鲸,用setInterval制作時,會存在一個問題:當(dāng)重復(fù)點擊時,函數(shù)執(zhí)行速度會越來越快怎顾;
  olink.onclick=function(){
        clearInterval(timer);//當(dāng)開啟定時器前读慎,要關(guān)閉所有的定時器,不然的話槐雾,重復(fù)點擊時夭委,速度會越來越快;
        timer=setInterval(function(){
            odiv.innerHTML=++count;
            },500);
    }
  • 隔行換色及添加鼠標(biāo)事件考題
    • 要求:
      1. 獲取#ul下的所有l(wèi)i募强,實現(xiàn)隔行換色株灸,偶數(shù)行為綠色,奇數(shù)行為紅色擎值;
      2. 鼠標(biāo)滑過每一個li蚂且,讓當(dāng)前行的背景顏變成粉色(pink),鼠標(biāo)離開后恢復(fù)開始的顏色;
      3. 鼠標(biāo)點擊每個li彈出"我是第N個li"(n是每一個li的索引+1)幅恋;
    • 第一種方法:
    <body>
    <ul id="ul1">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
    <script>
        var oul=document.getElementById("ul1");
        var ali=oul.getElementsByTagName("li");
        for(var i=0; i<ali.length; i++){
            ali[i].index=i;//通過自定義屬性,將每個i值存在每個標(biāo)簽中泵肄;
            ali[i].className="bgc"+i%2;
            ali[i].onmouseover=function () {
                this.className="bgc2";
            }
            ali[i].onmouseout=function () {
                this.className="bgc"+this.index%2;
            }
            ali[i].onclick=function () {
                alert("我是第"+(this.index+1)+"個li")
            }
        }
    </script>
    </body>
    
    • 第二種方法:
    <script>
    var ode=null;//創(chuàng)建一個全局變量捆交;用于儲存
        var oul=document.getElementById("ul1");
        var ali=oul.getElementsByTagName("li");
        for(var i=0; i<ali.length; i++){
            if(i%2==0){
                ali[i].style.backgroundColor="red";
            }else{
                ali[i].style.backgroundColor="green";
            }
            ali[i].onmouseover=function () {
                ode=this.style.backgroundColor;//利用全局變量,儲存原數(shù)據(jù)腐巢;
                this.style.backgroundColor="pink";
            }
            ali[i].onmouseout=function () {
                this.style.background=ode;//調(diào)用全局變量中的原數(shù)據(jù)品追;
            };
            //利用閉包函數(shù),儲存不同的i值冯丙;
            (function(index){
                ali[index].onclick=function(){
                    alert("我是第"+(index+1)+"個li");
                }
            })(i);
        }
    </script>
    
    • 知識點:
      • 全局變量可以儲存單一的屬性值肉瓦;
      • 在for循環(huán)遍歷中,將每個不同的i值儲存下來胃惜,可以用自定義屬性和函數(shù)私有作用域泞莉;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市船殉,隨后出現(xiàn)的幾起案子鲫趁,更是在濱河造成了極大的恐慌,老刑警劉巖利虫,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挨厚,死亡現(xiàn)場離奇詭異,居然都是意外死亡糠惫,警方通過查閱死者的電腦和手機疫剃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硼讽,“玉大人巢价,你說我怎么就攤上這事。” “怎么了蹄溉?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵咨油,是天一觀的道長。 經(jīng)常有香客問我柒爵,道長役电,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任棉胀,我火速辦了婚禮法瑟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唁奢。我一直安慰自己霎挟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布麻掸。 她就那樣靜靜地躺著酥夭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脊奋。 梳的紋絲不亂的頭發(fā)上熬北,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音诚隙,去河邊找鬼讶隐。 笑死,一個胖子當(dāng)著我的面吹牛久又,可吹牛的內(nèi)容都是我干的巫延。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼地消,長吁一口氣:“原來是場噩夢啊……” “哼炉峰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起脉执,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤讲冠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后适瓦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體竿开,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年玻熙,在試婚紗的時候發(fā)現(xiàn)自己被綠了否彩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗦随,死狀恐怖列荔,靈堂內(nèi)的尸體忽然破棺而出敬尺,到底是詐尸還是另有隱情,我是刑警寧澤贴浙,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布砂吞,位于F島的核電站,受9級特大地震影響崎溃,放射性物質(zhì)發(fā)生泄漏蜻直。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一袁串、第九天 我趴在偏房一處隱蔽的房頂上張望概而。 院中可真熱鬧,春花似錦囱修、人聲如沸赎瑰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽餐曼。三九已至,卻和暖如春鲜漩,著一層夾襖步出監(jiān)牢的瞬間晋辆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工宇整, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人芋膘。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓鳞青,卻偏偏與公主長得像,于是被迫代替她去往敵國和親为朋。 傳聞我的和親對象是個殘疾皇子臂拓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準习寸。 注意:講述HT...
    kismetajun閱讀 27,485評論 1 45
  • 1胶惰,什么是事件委托:通俗的講,事件就是onclick霞溪,onmouseover孵滞,onmouseout,等就是事件鸯匹,委...
    90后IT閱讀 430評論 0 0
  • 1.DOM基礎(chǔ) 什么是DOM :document ,節(jié)點! 其實說的都是一個東西, CSS時管叫標(biāo)簽, JS時管叫...
    壹點微塵閱讀 432評論 0 0
  • js中的事件委托或是事件代理詳解 起因: 1坊饶、這是前端面試的經(jīng)典題型,要去找工作的小伙伴看看還是有幫助的殴蓬; 2匿级、其...
    老頭子_d0ec閱讀 111評論 0 0
  • 周一開始寫小組論文了,我得承認我學(xué)習(xí)的非常敷衍。 首先每天花在學(xué)習(xí)上的時間太少痘绎,一直在玩手機津函。 在手機上花的最多的...
    DaisyWey閱讀 145評論 0 0