天天看點

原生JS中的實作開關邏輯的四種方法

當你随着對前端學習的深入和做更多的項目時,會發現原生JS中開關邏輯是非常重要的.

注意:在運作的時候去掉注釋,下面的代碼僅保留第一種方式。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <img id="img" src="img/pic_bulboff.gif" alt=""/>
    </body>
    <script type="text/javascript">
        var imgObj = document.getElementById("img");
        //第一種方式:
//      var count = 0;//記錄點選的次數
//      imgObj.onclick = function (){
//          count++;
//          if (count % 2 != 0) {
//              //奇數  --- 開
//              imgObj.src = "img/pic_bulbon.gif";
//          } else{
//              //偶數 -- 關
//              imgObj.src = "img/pic_bulboff.gif";
//          }
//      }
      //第二種方式:
//    console.log(imgObj.src);
//    imgObj.onclick = function (){
//      //如果關,則打開
//      //注意:此方法最需要注意的是沒有報錯,但是也沒有結果。下面的絕對路徑是通過檢查和調試的方式得到的,最容易想到的是使用相對路徑,但是在計算機裡面不能用相對路徑
//      if (imgObj.src == "http://127.0.0.1:8020/H0202JS%E5%9F%BA%E7%A1%8003/img/pic_bulboff.gif") {
//          console.log("開");
//          imgObj.src = "img/pic_bulbon.gif";//開
//      } else{
//          console.log("關");
//          imgObj.src = "img/pic_bulboff.gif";//關
//      }
//      
//    }

    //第三種方式:最正常的邏輯思路,常用
//  假設 true 燈亮 false 燈滅
//  var onOff = false;
//  imgObj.onclick = function (){
//        if (onOff == false) {
//          imgObj.src = "img/pic_bulbon.gif";//開
//          onOff = true;//改變狀态
//        } else{
//          imgObj.src = "img/pic_bulboff.gif";//關
//          onOff = false;//改變狀态
//        }
//        
//        
//  }
     //第四種方式: 假設 true 燈亮 false 燈滅
//   var isT = false;
//   imgObj.onclick = function (){
//   imgObj.src = isT == false ? "img/pic_bulbon.gif" : "img/pic_bulboff.gif";
//   isT = !isT;//每次對結果取反,改變狀态
//   }
//     
    </script>
</html>