Upgrade to Pro — share decks privately, control downloads, hide ads and more …

08 - js frontend & jQuery - OpenWebSchool

08 - js frontend & jQuery - OpenWebSchool

openwebschool

August 16, 2012
Tweet

More Decks by openwebschool

Other Decks in Programming

Transcript

  1. $(‘#a’).addClass(‘banana’); // 新增 banana class $(‘#a’).removeClass(‘banana’); // 移除 banana class

    $(‘#a’).hasClass(‘banana’); // 判斷 #a 是否有 banana 這個 class
  2. $(‘#a’).html(); // 取得 #a 底下所有 html $(‘#a’).html(‘<p>haha</p>’); // 設定 #a

    底下所有 html $(‘input#a’).val(); // 取得 #a 輸入的數值 $(‘input#a’).val(100); // 設定 #a 輸入的數值
  3. $(‘#a’).click( callback ); $(‘#a’).on(‘click’, callback ); // 其實 click 等等方法都是

    on 的簡寫 // on(事件名稱, callback) 全部通吃 $(‘#a’).off(‘click’, callback ); // 取消監聽 click 事件 $(‘#a’).one(‘click’, callback ); // 只監聽第一次 click 事件 $(‘#a’).trigger(‘click’); // 主動觸發 click 事件
  4. $(document).ready(function () { console.log(‘ready to go!’); }); // 事件:DOM 載入完成

    // 在 DOM 載完之前對 DOM 作操作可能會爆炸 // 所以等載完後再來做事情 // 做為程式初始化的起點,有點像 C 的 main $(function () { console.log(‘ready to go!’); }); // 因為每次都會用到,所以能簡寫成這樣
  5. CSS

  6. $(‘#a’).css({ margin: 100, width: 200, ‘font-size’: ‘200%’, fontWeight: ‘bold’ });

    // 一次設定多筆樣式 // 無法表示的可以用字串表示
  7. $(‘#a’).width(); // 取得 #a 的 width 數值 $(‘#a’).height(50); // 設定

    #a 的 height 數值 $(‘#a’).offset(); // { top: ..., left: ... } // 取得 #a 的相對母元素位置 $(‘#a’).scrollTop(50); // 設定 #a 的滾動的數值
  8. $(‘#a’).animate({ margin: 100, width: 200, ‘font-size’: ‘200%’, fontWeight: ‘bold’ },

    500, function () { console.log(‘animation done’); }); // 花半秒時間變成指定的樣式 // 花費時間,easing,callback 都是可選
  9. $.get(‘banana.json’, { data: 123 }, function (data) { console.log(‘data retrieved!’);

    }, ‘json’); // 回傳的資料一樣是從 callback 的參數傳入 // 除了資源位址,傳送過去的資料,請求成功 // 的 callback 和傳送資料格式都是可選的 $.post( ... ); // 還有 post
  10. $.ajax({ url: ‘banana/apple’, data: 100, error: function (error) { console.log(‘failed!’);

    }, success: function (data) { console.log(‘success!’); } }); // $.get $.post 都是 $.ajax 的簡寫 // 有一大堆可選的東西可以填