{"shas":[["aca7d98ccdff02747cc881fe89ae600918fad5b8","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON21 イベントオブジェクトを究めよう","ongaeshi"],["03c7b5a70c6ff057b773764af3278f45caee1f26","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON21\n\nクリックする場所によって異なるコンテキストメニュー\n\nイベントバブリング\n　下の階層で発生したイベントが上の階層にまで自動的に伝播していく様子\n  e.stopPropagation() で伝播停止。\n\ne.dataにユーザーデータを渡す\n  渡すとき : .mousedown({ exp : '#menu' }, onmousedown)\n  使うとき : $(e.data.exp).css({ ... } );","ongaeshi"],["2d4ee502050d1c01fab6c8200de9e589fc57a9a5","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON22 フォームの入力検証機能を実装しよう","ongaeshi"],["b285a547b50bd9b397b06a117f59fc0226d3fd0c","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON22 フォームの入力検証機能を実装しよう","ongaeshi"],["955272b98b98748590bdc55d454788978b9c617d","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON22\n\nparseFloat        .. 文字列から小数に変換\n$.inArray         .. 配列の中に含まれているか？\ndata-xxxx属性     .. 開発者が自由に設定できる特別な属性(data-length等), $('filter').data('length') でアクセス可能\n$('.valid', this) .. thisを基点にセレクターで検索\neach              .. jQueryオブジェクトの内容を順に処理する\nRegExp#test       .. 正規表現にマッチしているか？\nISBN 正規表現     .. \"[0-9]{1}-[x0-9]{3,5}-[0-9]{3,5}-[0-9X]{1}\"","ongaeshi"],["8e7d277372015035b7ea11f6bba51dc77a2d0718","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON23 フォトギャラリーにアニメーション機能を追加しよう\n\nshow\nhide\ntoggle\nslideDown\nslideUp\nslideToggle\nfadeIn\nfadeOut\nanimate\n\nメソッドチェーンの関数は即座に実行され、アニメーションは即座に実行される\n  アニメーションキューのようなものに蓄積される？\nあらかじめキャッシュしてある 'クリックされた<img>'を渡す、($(this)は 'img#big' なので適切ではない)","ongaeshi"],["87f2a6a09ec81d23b5ce4310fe2a075e7564ea64","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON24 ツールチップを実装しよう","ongaeshi"],["7e56a501c5b871cf338954a4e911b48948fcb6da","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON25 開閉可能なパネルを作成しよう","ongaeshi"],["98e17189d55445659811f428f01b814fc14c4757","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON25\n\n'#panel dd'でプロパティをnoneに設定して@@いない@@　どの環境でも見ることが出来る\njQueryのhide()関数で閉じる\nslideUp, slideDown   開閉パネルに必要な素材\n$('+dd', this)       基点となるthisの次の<dd>要素\nアコーディオンパネルの実装\n$('#panel dd:gt(0)')             一枚目を除いたそれ以外\n$('#panel dd').slideUp(500);     全てのパネルを閉じて\n$('+dd', this).slideDown(500);   選択パネルのみを表示","ongaeshi"],["30a32ea6302ba9e4e0bef0835fbf147d97dd9c5a","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON26 フォトギャラリーのサムネイルリストを表示しよう","ongaeshi"],["6f36d913083c6ed233c1b69b2f08ca969f29ad90","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON26\n\noverflow: hidden;      領域内に収まりきらない内容を、どのように処理するかを指定","ongaeshi"],["0df8c5404e9e806b491c7440377e0e20f77ede40","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON29 タブパネルを作成しよう","ongaeshi"],["e6e5ec571e7248e283d5ff3fc8e7b825d4d58719","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON30 Yahoo! 動画検索Web APIを使うための準備をしよう\n\nサーバースクリプトをPHPではなくruby/sinatraで実装。","ongaeshi"],["6c9ed27bbb204fc6c29f3289f4d668be98275616","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON31 Yahoo!動画検索Web APIを実装しよう","ongaeshi"],["0ed146dbedc18bf4332c15901d7f3fabaed7231f","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON31\n\nXMLを返すように ( before do; content_type 'xml'; end )\n日本語の検索が出来ない -> escape\n$.get('読み込むデータのURL'[, 読み込み先に送信するデータ], 通信に成功した場合の処理)\n$('Result', data) でXML形式のデータも処理出来る\n<a></a>を追加(append)、href属性を追加し(attr)、<img>タグを追加(append)","ongaeshi"],["5c6550ac361f0dce19a69fdcc6f3787749a9e75a","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON32 動画検索機能にページング処理を追加しよう\n\nLESSON31からコピー","ongaeshi"],["afbbd0295b22e221b089aa348509204e1f2bd74c","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON32\n\nページング処理を追加\nisNotANumber(v) // isNaNだと、引数が\"\"の時にfalseが返ってしまうので専用関数を作る\nvar page_cnt = Math.ceil($('ResultSet', data).attr('totalResultsAvailable') / 20); // page数を計算\n$('.pager_link').live('click', onsearch); // 新しく.pager_linkを作った時もメソッドを追加\n大きなコードを読むときは、詳細なコードに踏み込むのではなく、ブロック単位にコードを把握していく。\n.attr('href', '#') // <a href=\"#\"> 的なやつ(ダミーリンク)","ongaeshi"],["26bb84e764cf111602a6b3918f97cec2a8e997e9","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[start] LESSON33 Ajax通信の進捗状況やエラー情報を表示しよう\n\nLESSON32からコピー","ongaeshi"],["ee9b770bcd06ead78784e6fa4e8748dee9ada94a","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","進捗バー表示","ongaeshi"],["7267c09e2803e83360a5b5ae3d6d6f364604f1f4","24c2a16eb9cba7d58d43774621e0c418a239689e@gmail.com","[end] LESSON33\n\nAjaxイベント、Ajaxによる通信中に進捗バーを表示する\nAjaxオプション、jQueryによるAjax通信の挙動を変更する\nloader.gif .. アニメーションgif\nAjaxのコールバック\n  ajaxStart\n  ajaxStop\n  ajaxError\n  ajaxSetup  cache: false (キャッシュを無効)","ongaeshi"]],"ref":"refs/heads/master","size":20,"head":"7267c09e2803e83360a5b5ae3d6d6f364604f1f4","push_id":43495897}