Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
暗号技術の実装と数学
MITSUNARI Shigeo
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
Fargateを使いこなす!creatiaのインフラを支える技術について
虎の穴 開発室
paizaのオンラインジャッジを支えるDockerとその周辺
paiza
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
ノンプログラマーのためのjQuery入門
Hayato Mizuno
1
of
30
Top clipped slide
Scc2014 :jQueryの仕組みを完璧に理解する
Aug. 3, 2014
•
0 likes
12 likes
×
Be the first to like this
Show More
•
8,713 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Jun Futakawa
Follow
代表取締役 at 株式会社アトラクト
Advertisement
Advertisement
Advertisement
Recommended
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
22.4K views
•
40 slides
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
100.5K views
•
62 slides
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
18.5K views
•
121 slides
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
82.6K views
•
51 slides
世界一わかりやすいClean Architecture
Atsushi Nakamura
45.3K views
•
77 slides
目grep入門 +解説
murachue
87.3K views
•
83 slides
More Related Content
Slideshows for you
(20)
暗号技術の実装と数学
MITSUNARI Shigeo
•
9.3K views
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
•
1.7K views
Fargateを使いこなす!creatiaのインフラを支える技術について
虎の穴 開発室
•
616 views
paizaのオンラインジャッジを支えるDockerとその周辺
paiza
•
20.3K views
世界最強のソフトウェアアーキテクト
Yahoo!デベロッパーネットワーク
•
30.4K views
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
•
15.2K views
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
•
31.8K views
ノンプログラマーのためのjQuery入門
Hayato Mizuno
•
148.4K views
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
•
12.5K views
ホットな日本語入力技術のお勉強。〜 OSC 2016 Hamanako 編 〜
Masahiko Hashimoto
•
8.4K views
Akkaとは。アクターモデル とは。
Kenjiro Kubota
•
7.4K views
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
•
8K views
DockerコンテナでGitを使う
Kazuhiro Suga
•
17.1K views
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
•
66.4K views
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
•
2.7K views
例外設計における大罪
Takuto Wada
•
66.5K views
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Masahito Zembutsu
•
28.9K views
Dockerからcontainerdへの移行
Kohei Tokunaga
•
15.4K views
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
•
18.9K views
3週連続DDDその2 深いモデルの探求(ドメイン駆動設計 第3部)
増田 亨
•
14.4K views
Viewers also liked
(7)
2時間で学ぶjQuery
Shumpei Shiraishi
•
7.5K views
WebデザイナのためのjQuery入門。
Yossy Taka
•
3.5K views
jQueryで気をつけてほしいこと
良太 増子
•
4.7K views
Webデザインの幅を広げる、jQuery【コードを記述する】 先生:保坂 庸介
schoowebcampus
•
4.8K views
メディア芸術基礎 II jQuery入門
Atsushi Tadokoro
•
4.5K views
Angular1&2
Kenichi Kanai
•
77.8K views
漢は黙ってjQuery
Takuma Hanatani
•
54.3K views
Advertisement
Similar to Scc2014 :jQueryの仕組みを完璧に理解する
(20)
20140523 jQuery基礎 (HTML5ビギナーズ)
Daisuke Yamazaki
•
3K views
挫折した人のための、初心者速習html+css【JQueryでTOP画像がクルクル動くようにしてみよう編】 先生:田中 晶子
schoowebcampus
•
1K views
【再放送】生放送の前にJQueryについて復習しよう!
schoowebcampus
•
725 views
Riot.jsに触れてみた話
エンジニア勉強会 エスキュービズム
•
19K views
Web development fundamental
Takuya Kumagai
•
1.5K views
今度こそ始めるjQuery超入門
西畑 一馬
•
4.7K views
2012/11/03Hiroshima.rb
Ueki Kouji
•
196 views
JavaScript04 jquery プラグインを使おう
Yossy Taka
•
718 views
jQuery 対応ライブラリと TypeScript
インフラジスティックス・ジャパン株式会社
•
5K views
Javaのカルチャーとグロース - MANABIYA 2018
Yusuke Suzuki
•
9.9K views
Web制作勉強会 #2
Moto Yan
•
613 views
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Yusuke Suzuki
•
11.6K views
HTML5時代のフロントエンド開発入門
Shumpei Shiraishi
•
3K views
挫折した人のための、初心者速習html+css【JQueryで商品画像をポップアップさせよう編】 先生:田中 晶子
schoowebcampus
•
992 views
TypeScriptをオススメする理由
Yusuke Naka
•
13.3K views
jQuery MobileとHTML5
yoshikawa_t
•
1.8K views
Createjsについて@jsCafe20
佐藤 俊太郎
•
1.7K views
osc_tokyo20091030
Shoken Fujisaki
•
994 views
Scc2015 SNS Tech
Jun Futakawa
•
765 views
マークアップ講座 04 jQuery - JavaScript
eiji sekiya
•
850 views
More from Jun Futakawa
(6)
Scc2017 youtube creator
Jun Futakawa
•
220 views
Scc2016 you tube
Jun Futakawa
•
246 views
Scc2015 you tube
Jun Futakawa
•
926 views
Scc2014 sound
Jun Futakawa
•
601 views
Scc2013 sound
Jun Futakawa
•
535 views
Scc2013 air
Jun Futakawa
•
1.5K views
Advertisement
Scc2014 :jQueryの仕組みを完璧に理解する
jQueryの仕組みを完璧に理解する 2014/08/02 サッポロクリエイティブキャンプ2014 Jun Futakawa
! • FaceBook:: Jun
Futakawaで検索 • twitter:: J2kawa • ActionScript, PHP, MySQL,JS etc. • 音極道の中の人 • 勤務遍歴:富士通 クリプトンフューチャメディア インフィニットループ etc. • 株式会社アトラクト 代表取締役 自己紹介
アジェンダ • jQueryの概要と利用状況 • なぜjQueryが選ばれているのか •
jQueryオブジェクトって何? • セレクタエンジン『Sizzle』(シズル)を理解する • jQueryメソッドについて !
jQueryの概要と利用状況
jQueryの概要 ・米国のプログラマ John Lessig
が開発したJavaScriptライブラリ。 ・2006年8月Version 1.0 リリース。最新Ver.は1.11.1 / 2.1.1。 ・MITライセンスのオープンソースライブラリ。 ・主にDOM操作において豊富で優れた機能を提供する。 ・派生プロジェクトとして、 jQuery UI (ユーザインタフェース系拡張フレームワーク) jQuery Mobile (モバイルに最適化したUIフレームワーク) QUnit (JavaScriptにおける単体テスト自動化フレームワーク) がある。
jQueryの利用状況 ・世界中の全WEBサイト中、60.3%のサイトが jQueryを使用している。 ・JavaScriptライブラリを一切使用していないサイトは 全体の35.9%。 ・JavaScriptライブラリにおける、jQueryのシェアは実に 94.1%に達する。 (出典:W3Techs http://w3techs.com/technologies/overview/javascript_library/all) <2014/7/10 付けデータ>
なぜjQueryが選ばれているのか
jQueryの特長(1) 強力なセレクタエンジン Sizzle を採用 CSSセレクタ書式 および その独自拡張書式により 極め て容易かつ柔軟にDOM要素の検索、抽出が可能
jQueryの特長(2) メソッドチェーンによる容易な連続操作 コード量を少なく、かつわかりやすく、かつ処理を高速化 できる メソッドチェーン [処理の連鎖をdot[ . ]で繋げていく] $(
div ).text( Thank you! ).addClass( note )…..
jQueryの特長(3) シンプルかつ柔軟なプラグイン機構を持つ ・大量のプラグインが開発されるので必要な機能が手に入 りやすい ・必要なプラグインのみ導入できることから、結果として 軽量化に寄与 ・公式のプラグインリポジトリがあるため、プラグインの 流通・開発促進が活発化
jQueryオブジェクトって何?
…の前に、DOMって何? Document Object Model
の略。 HTML文書やXML文書をアプリケーションから利用するためのAPI。 プログラマ以外の方が、上の様な説明を理解するのは大変困 難だと思います。このセミナーにおいては、とりあえず以下 の様に大雑把に理解してください。 ! [DOM / DOMツリー] jQueryを使おうとしている対象のWEBページ全体。 [DOM要素] そのWEBページ内の、任意のHTMLタグで囲まれた部分。
専門用語に気をとらわれ過ぎない 「最初から、 WEBページ ,
HTMLタグ って呼んだ方がわかりやすいの に。なんで DOMとかDOM要素とか言っちゃうわけ?だからプログラミ ングの解説って嫌い。」 と思ったそこのあなた。 わかります。 でも、こういう風に理解してください。 人も、場所や状況によって、いろいろな呼び方をされます。 病院では「患者さん」、お店では「お客様」、スポーツ大会では「選手」 などなど。 DOM や DOM要素 という言葉を使うことによって、「今 プログラミングという観点から見ているよ」という事を明確 に伝える意図を含んでいます。判ってしまえばどうってことはな いので、言葉が判りづらいからといって、必要以上に「難し過ぎる」 と思わないでください。
jQuery関数とは jQueryライブラリは、jQuery() という名前のグローバル関 数を1つだけ定義します。この関数は、何度も何度も使うこ とになるので、ショートカットとして $ というグローバル シンボルも定義しています。 グローバルな名前空間にjQueryが定義するのは、この2つの シンボルだけです。 (O
Reillyジャパン 『JavaScript』<第6版>より) jQuery() もしくは $() 関数 jQueryの中心となる問い合わせ関数。この関数から返される値 は、0個以上のDOM要素群を表すオブジェクトで、このオブ ジェクトをjQueryオブジェクト と呼ぶ。
セレクタエンジン 『Sizzle』(シズル)を理解する
jQueryの原理 「少ないコードで多くのことを行う」のがjQueryの原理である。こ の原理はさらに3つの概念に分解することができる。 ! ・(CSSセレクタを通して)要素を検索し、 (jQueryメソッドを通じて)それらを使って何かを行う。 ・要素セットで複数のjQueryメソッドを連鎖させる。 ・jQueryラッパーを使って暗黙的にやりとりする。 (O Reillyジャパン 『jQueryクックブック』より) (CSSセレクタを通して)要素を検索
という機能を担っているのが 『Sizzle』(シズル)と呼ばれるセレクタエンジン
Sizzleの概要 ・DOM要素を、CSSセレクタの記法を用いて選択する為の JavaScriptライブラリ。 ・jQueryのVersion 1.3 から、jQuery
内に統合された。 ・開発には、jQuery開発者のJohn Lessigが統合以前から参 加。 ・単にCSSセレクタ記法を用いることができるだけでなく、 独自実装による優れたオプション指定ができる。
DOM要素の選択記法(1) CSSセレクタ記法をそのまま用いる Sample. jQuery(‘#logo_image’) or $(‘#logo_image’) jQuery(‘.clearfix
a’) or $(‘.clearfix a’) jQuery(‘div’) or $(‘div’)
DOM要素の選択記法(2) 要素の順番に基づいて選択する Sample. jQuery(‘li:first’) or $(‘li:first’) jQuery(‘li:eq(0)’)
or $(‘li:eq(0)’) jQuery(‘tr:even’) or $(‘tr:even’) :first 最初の要素 :last 最後の要素 :even 偶数番目の要素 :odd 奇数番目の要素 :eq(n) インデックス(n)の要素 :lt(n) インデックスが(n)より 小さいすべての要素 :gt(n) インデックスが(n)より 大きいすべての要素
DOM要素の選択記法(3) 属性に基づいて選択する Sample. jQuery(‘a[href=http://google.com]’) or $(‘a[href=http://google.com]’) jQuery(‘a[title][href]’) or
$(‘a[title][href]’) [attr] 指定された属性を持つ要素 [attr=val] 指定された属性に特定の値が 設定されている要素 [attr!=val] 指定された属性に特定の値以外が 設定されている要素
DOM要素の選択記法(4) 可視性に基づいて選択する Sample. jQuery(‘div:hidden’) or $(‘div:hidden’) :hidden
非表示状態の要素 :visible 表示状態の要素
DOM要素の選択記法(5) フォーム要素の種類に基づいて選択する Sample. jQuery(‘:text’) or $(‘:text’) :text
input type=text :password input type=password :radio input type=radio :checkbox input type=checkbox .etc…
jQueryメソッドについて
jQueryの原理(再掲) 「少ないコードで多くのことを行う」のがjQueryの原理である。こ の原理はさらに3つの概念に分解することができる。 ! ・(CSSセレクタを通して)要素を検索し、 (jQueryメソッドを通じて)それらを使って何かを行う。 ・要素セットで複数のjQueryメソッドを連鎖させる。 ・jQueryラッパーを使って暗黙的にやりとりする。 (O Reillyジャパン 『jQueryクックブック』より) それら(検索したDOM要素)を使って何かを行う
という機能を担っているの jQueryメソッド。
jQueryメソッドの概要 ・jQueryメソッドとは、jQueryオブジェクトに定義され、dot(.)指定で 呼び出せるメソッド(処理) ・jQueryメソッドは、戻り値に必ずjQueryオブジェクトが設定される ため、呼び出しを連鎖させることができる。 ・以下のカテゴリ群がある。 1. Core
核となる基本機能 2. Selectors DOM要素選択(補助) 3. Attributes DOM要素の属性 4. Traversing DOM要素の走査 5. Manipulation DOM要素の操作 6. CSS css、styleの処理 7. Events イベント関連の処理 8. Effects 視覚効果・演出 9. Ajax Ajax関連 10.Deferred Deferredオブジェクト関連処理 11.Data Data関連処理 12.Callbacks コールバック関数の管理 13.Utilities ユーテリティ
jQueryメソッドによる処理の実例 Sample $(‘div’).css(‘border’,‘1px solid red’); ■CSSを書き換える Sample $(‘div#main’).fadeOut(0.5); ■フェイドアウト効果を施す Sample $(‘div’).remove(‘a’); ■DOMから要素を削除する 上記はほんの一例で、他にもさまざまなことができます。 jQueryリファレンスを見て、その「できること」の幅広さを確認してください。 公式サイトリファレンス(英語):
http://api.jquery.com Qrefy(日本語リファレンスサイト): http://s3pw.com/qrefy/
readyメソッドについて(1) みなさんが、実際のWEBサイトで必ずといっていいほど最初に 目にするjQuery構文は $(function(){ …… <書式A> というものではないでしょうか。よく見ますね。この構文。 しかし、ここまでの説明だけだと、この構文理解できません。 この構文は、多くの記述が省略されているので、すべてを 省略せずに書いてみましょう。 jQuery(document).ready(function(){ …
<書式B> この様になります。一番左は何度も繰り返しお伝えしているので もうお分かりだと思いますが、エイリアスとして’$’を使うことが できます。さらに、このjQuery関数のパラメータを省略すると デフォルトは document になります(文字列でないので注意!)
readyメソッドについて(2) このようになります。だいぶ短くなりました。 $().ready(function(){ …… <書式C> --readyメソッドについて-- ここでreadyメソッドについて説明しておきます。 readyメソッドは、jQueryメソッドの1つで、イベント系メソッ ドにカテゴライズされるものです。 『ready状態』とは、すべてのDOM要素が生成され、かつ画像等の ロードが完了していない状態 です。 これは、JavaScriptのwindow.onLoadイベントに替わるもの であり、onLoadより少ない待ち時間で処理を開始することができ ます。 ※ちなみにjQueryにもonLoadイベント相当の、loadメソッドがあります。 jQuery関数をエイリアス表記に、さらにパラメータを省略すると
readyメソッドについて(3) $(function(){ …… このreadyメソッドコールは、その記述自体を省略可能です。省略 すると次の様になり、よく見る最初の<書式A>になります。 ぜひとも、全てを省略せずに記述する書式<書式B>をいつでも思い 出せる様にしてください。ここにはjQueryの 仕組み
を理解する ヒントがたくさんあるのです。
最後に 今回のセミナーの内容は、極めて基本的な内容でありながら、その 一方で、かなり深いjQueryの本質について取り上げたつもりです。 この資料の内容を何度も繰り返し読み、吟味して、より深い理解に 繋げていただければ幸いです。 ! 今まで、中身を理解しないままコピーペーストで済ませていた方も これを機会に、ソースをよく読んでみてください。 過去に自分が納品したサイトのソース, 気になるサイトのソースな ど、あらためて見てみてください。 以前と比べて、きっと内容が判る様になっているはずです。 そのような理解の一助にこの講義がお役に立てれば、こんなうれし いことはありません。
Advertisement