fc2ブログ

Jquery 入門 その4 プラグイン($.fn.extend)の作り方

Posted by html5_newbie on 26.2010 JavaScript 0 comments 0 trackback
Jquery入門記事一覧

Jquery 入門 その1 要素にアクセスする
Jquery 入門 その2 要素にアクセスするメソッド
Jquery 入門 その3 メソッドチェーン
Jquery 入門 その4 プラグイン($.fn.extend)の作り方
Jquery 入門 その5 プラグイン($.extend)のサンプル
Jquery 入門 その6 イベント処理
Jquery 入門 その7 繰り返し処理
Jquery 入門 その8 DOMツリーへのアクセスを意識する
Jquery 入門 その9 非同期通信で用いるデータ
Jquery 入門 その10 非同期通信とは
Jquery 入門 その11 非同期通信のサンプル1
Jquery 入門 その12 非同期通信のサンプル2
Jquery 入門 その13 非同期通信のサンプル3 $.post,$.get
Jquery 入門 その14 非同期通信実践例(formをpostしphpで処理)

サンプルのソースコードのダウンロード(下のURLをブラウザで入力してください。)

http://html5.web.fc2.com/jquery_new/jquery_new.zip

---------------------------------------------------------------------
前回の記事では、jqueryのメソッドの多くはjqueryオブジェクトを返すことを説明いたしました。

この機能を利用してプラグイン(自作関数のようなもの)を作ることができます。

プラグインを作成するには、以下の2つの方法があります。

$.extend(object)
$.fn.extend(object)

jQueryの日本語リファレンスなどを見ると、

$.extend(object)は、jQuery名前空間に新たなメソッドを追加する、
$.fn.extend(object)は、jQueryオブジェクトのプロトタイプを拡張する

と書かれています。正直意味不明だと思います。

そこで、個人的によく使う$.fn.extend(object)の方を説明したいと思います。

$.fn.extendで何ができるかというと、

jQueryのオブジェクトに対するメソッドを作ることができます。

つまり、

$("#method").jisakuPlugin();

というようなメソッドを作ることができます。

というわけで、簡単なサンプルを作ってみました。

jquery sample4

定義されたjisakuPluginを、

$("button").jisakuPlugin().css("background-color","#FFCCCC");

で実行しています。Pluginは戻り値として、自分自身を返すと、サンプルのようにメソッドチェーンもできるようになります。
まずは、一度作成してみてください。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Jquery 入門 その4 $.fn.extendのサンプル</title>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
<!--
    $(function() { //DOMツリーがREADYになったら実行する
        $.fn.extend({
            jisakuPlugin: function() {
                // 指定した要素に対して処理を実行
                this.each(function(index) {
                    $(this).click(function(){
                        $(this).css("background-color","#CCCCFF");
                        alert('jisakuPluginです!' + index + '個目のボタンをクリックしました。');
                    });
                });

                return this;
            }
        });
        
        $("button").jisakuPlugin().css("background-color","#FFCCCC");
    });
// -->
</script>

</head>
<body>
    <h1>Jquery メソッドチェーンのサンプル</h1>
    <button>0個目のボタン</button>
    <button>1個目のボタン</button>
    <button>2個目のボタン</button>
    <hr>
    <footer>
        <small><a href="http://html5.blog20.fc2.com/" target="_blank">HTML5、JavaScript、Android を勉強しよう</a></small>
    </footer>
</body>
</html>


▶ Comment

▶ Post comment


  • 管理者にだけ表示を許可する

▶ Trackback

trackbackURL:http://html5.blog20.fc2.com/tb.php/57-11fbcc27