當選擇器重複時可以合併,當語法重覆時可以放到陣列裡去寫




第一版:

 

<script src="js/jquery-1.12.3.min.js"></script>

    <script src="js/bootstrap.min.js"></script>

    <script>

              // JQ寫法,讓所有h1的標籤都變成綠色:

              $('h1').css('color', 'green');

 

              //     JS寫法,讓所有h1的標籤都變成綠色:

              //     var hs = document.getElementsByTagName('h1');

              //     for (var i = 0; i < hs.length; i++) {

              //         hs[i].style.color = "green"

              //     }

 

              $('h1').mouseover(over);//因為每個h1都要跑一次,所以背後JS每個實際上都有跑了一次圈,效能差

              //     var hs = document.getElementsByTagName('h1');

              //     for (var i = 0; i < hs.length; i++) {

              //         hs[i].style.color = "green"

              //     }

              $('h1').mouseout(out);

              //     var hs = document.getElementsByTagName('h1');

              //     for (var i = 0; i < hs.length; i++) {

              //         hs[i].style.color = "green"

              //     }

 

              function over() {

                  $(this).css('color', 'red');

                  //thisJS物件(觸發事件的物件)$(this)JQ物件,兩者能使用的方法不同

                  //this.css('color', 'red');是錯誤寫法,因為JS物件不可使用JQ方法

                  //$(this).style.color = "green" 也是錯誤寫法,因為JQ物件不可使用JS方法

                  //this.style.color = "green"  ←這個才是正確寫法

 

              }

              function out() {

                  $(this).css('color', 'green');

              }

</script>




第二版:

              //上面的寫法會有效能問題,所以改成下面這種寫法(只有一開始跑回圈),效能好(因為迴圈只跑一次)

              $('h1').css('color', 'green').mouseover(over).mouseout(out);

              //     var hs = document.getElementsByTagName('h1');

              //     for (var i = 0; i < hs.length; i++) {

              //         hs[i].style.color = "green"

              //     }

 

              function over() {

                  $(this).css('color', 'red');

 

              }

              function out() {

                  $(this).css('color', 'green');

              }




第三版:

//下面這種寫法不好,css重覆打太多次,JQ可以使用陣列或者map的方式來存,但不建議這樣做,可以直接寫在css裡面再掛上來,不用寫在這裡

//     $('h1').css('color','green')

//            .css(border','1px solid red')

//            .css('padding',"5px").mouseover(over).mouseout(out);

      

       var o1={

              'color':'green',

              'border':'1px solid red',

              'padding':"5px",

              'text-align':'center',

              'background':'yellow'

             

       }

       var o2={

              'color':'red',

              'border':'3px dotted green',

              'padding':"5px",

              'text-align':'center',

              'background':'orange'

             

       }

      

      

       $('h1').css(o1).mouseover(over).mouseout(out);

 

       function over() {

           $(this).css(o2);

 

       }

       function out() {

           $(this).css(o1);

       }

arrow
arrow
    全站熱搜

    乙方 發表在 痞客邦 留言(0) 人氣()