Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。KB)フィルタリングユーザーインターフェースを実装する際、jQueryとCSSと数行のJavaScriptを使うと、フィルタを展開したり折りたたんだりするクライアントサイド機能を実装できます。本シリーズでは、jQueryを使用したフィルタリングユーザーインターフェースの実装方法を2回に分けて解説します。Model)の取得や操作、AJAX機能をサポートするための帯域外HTTP要求の作成などの処理を簡略化することを目的としています。jQueryを利用すると、クライアントサイドでよく行う、DOMの要素に属性やCSSクラスを追加/削除したり、ボタンクリックなどのユーザーアクションへの応答としてページ上の要素の表示/非表示を切り替えたりする処理を簡単に実装できます。2.0サイトで使われており、リッチでインタラクティブな機能を実装するのに貢献しています。Formsアプリケーションに統合するのは少々手間がかかることもあります。MVCアプリケーションに適しています。MVCフレームワークにはjQueryライブラリが含まれています。2010とそれ以降のバージョンにはjQueryを組み込むことを公表しています。FormsアプリケーションでjQueryを使う機会がありました。このアプリケーションには、GridViewコントロールを使ってレポート結果を表示するレポート画面がいくつかあります。レポート結果のうち、ユーザーが特に興味のある部分のデータをフィルタで絞り込んで表示できるようにするために、これらのレポートにはフィルタリングユーザーインターフェースが含まれています。このユーザーインターフェースはいくつかのドロップダウンとチェックボックスとテキストボックスから成り、これによりユーザーはさまざまなフィルタ条件を設定できる仕様になっていました。問題は、このフィルタリングユーザーインターフェースはかなり「かさばる」ということです。ものによっては、画面上で占める面積があまりに広すぎて、それだけでほとんど画面全体が埋まってしまうこともありました。そのため、このフィルタリングユーザーインターフェースを折りたたみ、ユーザーの要求があったときにだけ展開するための方法が必要でした。最終的には、jQueryとCSSと数行のJavaScriptを使うことで、フィルタリングインターフェースを展開したり折りたたんだりするクライアントサイド機能を実装することができました。本稿では、このフィルタリングインターフェースの実装について2回に分けて解説します。前編にある今回は、この機能の基礎を説明します。後編では、この折りたたみ式のフィルタリングユーザーインターフェース機能を拡張して、ユーザーごとに折りたたみ/展開の状態が記憶されるようにする方法を説明します。jQueryの概要jQueryは、DOM操作やクライアントサイドのイベント処理といった、一般的なJavaScriptタスクを簡単に行えるようにするJavaScriptライブラリです。DOMの要素にアクセスできます。構文は少し慣れが必要ですが、セレクタを使用すればHTML要素のアクセスと変更が容易になります。filterUIというidを持つHTML要素がある場合、この要素は次の方法でアクセスできます。$('#filterUI')この要素を隠すには、hide()関数を次のように使用します。$('#filterUI').hide();この要素を表示するには、show()関数を次のように使用します。$('#filterUI').show();また、toggle()関数を使用すると、現在隠されている要素を表示し、逆に現在表示されている要素を隠すことができます。属性やCSSクラスを追加/削除するための関数や、フェードイン/フェードアウトやスライドイン/スライドアウトによって要素を表示したり消したりするなど、アニメーションを実行するための関数もあります。jQueryでは、クライアントサイドのイベントハンドラも簡単に作成できます。AとBというidを持つ2つの要素を含んだページがあって、Aがクリックされたときに、Bが隠されていればそれを表示し、表示されていれば隠すようにしたいとします。これを実現するには、Aのclickイベントに対応するイベントハンドラを作成し、その中で、Bに対してtoggle()関数を呼び出すだけでよいのです。そのためのjQueryコードは次のとおりです。$('#B').toggle();});上記のJavaScriptでは、Aのクライアントサイドのclickイベントに対応するイベントハンドラを定義しています。このイベントハンドラに含まれるコードは、$('#B').toggle();という1行だけです。同様の構文を使って、WebページがロードされたらJavaScriptコードを実行するという動作を実装できます。ブラウザにページとjQueryライブラリがロードされると、documentオブジェクトのreadyイベントが発生します。この時点でコードを実行するには、次のようなJavaScriptを書きます。}などのイベントハンドラ定義も含めることができます。1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。NEW1DMM.comの施策から見る、事業をむしばむ「技術負債」への処方箋──リファクタリングの「言語化」でインシデントを予防2企業の7割超が「2025年の崖」を理解していないことが明らかに。12:00法務担当者、6割超が今後業務で「生成AIを使用したい」と回答。NEW新着記事一覧を見るイベント今後の予定を見るCodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。