jQueryのチェーンプログラミングスタイルの詳細な例

jQueryのチェーンプログラミングスタイルの詳細な例

チェーンプログラミングの実装原理

jQuery を使用すると、開発者は常にドット構文を使用して独自のメソッドを呼び出すことができます。主な理由は、jQuery がそれを実装するために内部的に js オブジェクトを使用するためです。

jQueryでは、同じ要素や他の関連する要素(兄弟要素、親子要素)に対して操作を続ける場合は、. 構文(ドット構文)を使用して記述を続けることができます。

$("#box").css("背景", "ピンク").css("フォントサイズ":"29px");
$("#box").siblings().css("背景", "");

次のように書くことができます:

$("#box").css("背景", "ピンク").siblings().css("背景", "赤");

チェーンプログラミングを実装するには、jQuery セレクター自体が jQuery オブジェクトになります。 jQuery はこれを内部的に使用して自分自身を返します。

    //js でオブジェクトを宣言します var obj = {  
         name:"名前", 
        説明: 関数(){   
        console.log(this); // 現在のオブジェクトを出力します console.log(this.name); // オブジェクトのプロパティを呼び出します return this; // チェーンプログラミングの原則は、メソッドを呼び出した後、メソッド自体がオブジェクトを返すことです。
},  
      読み取り: 関数(){  
        console.log("こんにちは!");    
        これを返します。 
    }}


jQuery のチェーンプログラミングスタイルの例

まず、jQuery のチェーン プログラミング スタイルをケースを使って説明します。まず、リストを表示するページを作成します。コードは次のとおりです。

<本文>
    <div>
        <ul class="メニュー">
            <li class="level1">
                <a href="#">フルーツ</a>
                <ul class="level2">
                    <li><a href="#">アップル</a></li>
                    <li><a href="#">パイナップル</a></li>
                    <li><a href="#">カンタロープ</a></li>
                </ul>
            </li>
            <li class="level1">
                <a href="#">主食</a>
                <ul class="level2">
                    <li><a href="#">麺類</a></li>
                    <li><a href="#">マントウ</a></li>
                    <li><a href="#">米</a></li>
                </ul>
            </li>
        </ul>
    </div>
</本文>

<script type="text/javascript">
    $(関数() {
        $(".level1 > a").click(function() {
            $(this).addClass("current").next().show().parent.siblings().children("a").removeClass("current").next().hide();
            false を返します。
        });
    });
</スクリプト>

コードを実行した後の効果を下の図に示します。

上記のコードの拡張効果は、jQuery のチェーン操作によって実現されます。現在のクラスを追加する操作、子要素を照会するためのメソッド呼び出し、アニメーション メソッドの呼び出しはすべて同じ要素に対して実行されます。したがって、jQuery オブジェクトを取得した後、後続のすべてのメソッドと属性の呼び出しは、"." を通じて連続的に呼び出されます。このモードはチェーン操作です。

コードの可読性と保守性を高めるために、上記のチェーンコード形式を次のように変更します。

<script type="text/javascript">
    $(関数() {
        $(".level1 > a").click(function() {
            // 現在のスタイルを現在の要素に追加します $(this).addClass("current")
                // 次の要素が表示されます。next().show()
                // 親要素の兄弟要素の子要素 ​​a から現在のスタイルを削除します。element.parent.siblings().children("a").removeClass("current")
                // 次の要素は hidden.next().hide(); です。
            false を返します。
        });
    });
</スクリプト>

標準形式を調整すると、コードが読みやすくなり、その後のメンテナンスも便利になります。

同時に、同じ jQuery オブジェクトに対してチェーン操作を実行する場合は、主に次の 3 つの形式仕様に従います。

(1)同じオブジェクトに対する3つ以下の操作は、1行で直接記述することができます。コードは次のようになります。

<script type="text/javascript">
    $(関数() {
        $("li").show().unbind("click");
    });
</スクリプト>

(2)同じオブジェクトに対して複数の操作を行う場合は、1行に1つの操作を記述することをお勧めします。コードは次のようになります。

<script type="text/javascript">
    $(関数() {
        $(this).removeClass("マウスアウト")
            .addClass("マウスオーバー")
            。停止()
            .fadeTo("速い", 0.5)
            .fadeTo("速い", 1)
            .unbind("クリック")
            .click(関数() {
                .......
            });
    });
</スクリプト>

(3)複数のオブジェクトに対する少数の操作の場合は、オブジェクトごとに1行記述することができます。サブ要素が関係する場合は、適切なインデントを考慮してください。コードは次のとおりです。

<script type="text/javascript">
    $(関数() {
        $(this).addClass("highLight")
            .children("a").show().end()
            .siblings().removeClass("highLight")
            .children("a").hide();
    });
</スクリプト>

上記はjQueryのチェーンプログラミングスタイルについてです。

要約する

jQuery チェーン プログラミング スタイルに関するこの記事はこれで終わりです。jQuery チェーン プログラミングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript チェーンプログラミングを使用して JQuery 関数をシミュレートする

<<:  MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

>>:  CentOS 7へのJenkinsのインストール手順の詳細な説明

推薦する

MySQL マスタースレーブレプリケーションの原理と注意点

前面に書かれた最近、Mycat で特別なトピックを書いています。最近、多くの友人が面接に出かけている...

HTML 5 スタイルシートのリセット

この CSS リセットは、Eric Meyers の CSS リセットに基づいて変更されており、特に...

Windows/Mac で Docker を使用して MySQL (utf8 を含む) をインストールする

目次1. MacへのDockerのインストール2. Win 10 システムでの Docker のイン...

QQブラウザ機能を実装するためのCSS

コード知識ポイント1. fullpage.jsを組み合わせてフルスクリーンスクロールを実現する2. ...

NexusはHTTPSプロトコルをサポートするためにnginxプロキシを使用します

背景すべての会社の Web サイトは HTTPS プロトコルをサポートする必要があります。Aliba...

JavaScript イベント ループのケース スタディ

js のイベント ループJavaScript はシングルスレッドなので、同じイベントで実行できるメソ...

Docker用国産イメージウェアハウスの使い方

1. 問題の説明何らかの理由により、中国でのDockerイメージのダウンロード速度は特に遅くなります...

Gogs+Jenkins+Docker による .NetCore ステップの自動デプロイ

目次環境説明DockerのインストールゴグのインストールDocker で .NetCore サービス...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...

テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要

この記事では、テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加を行う一般的な ...

ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善

<br />このシリーズの最初のセクションでは、Web サイトのパフォーマンスを向上させ...

Vue3でアイコンを使用する2つの例

目次1. SVGを使用する2. fontAwesomeを使用する3 ソース4 結論テクノロジースタッ...

モバイル開発における 1px ラインの理解と解決策

1pxの線が太くなる理由モバイルプロジェクトに取り組むとき、設計図に従って要素ノードのサイズとスタイ...

CSSブロッキングマージとその他の効果についての簡単な説明

非直交マージンマージンを使用するとマージが発生します次のプロパティはマージンの結合を防止します。国境...

CentOS システムでの JDK のインストールと設定の概要

目次序文OpenJDKの確認とアンインストールダウンロードした圧縮パッケージを使用してJDKをインス...