2011-08-10 17 views
1

シンプルなjQueryプラグインを構築したいが、始める方法がわからず、いくつかの記事を読み、いくつかの人気のあるプラグインのコードを学習しようとしたが、 。シンプルなjqueryプラグイン

私にスターターテンプレートを見せてください。

$("a").myMessagePlugin(); 

、毎回誰かがそれだけで警告をポップアップし、そのリンクを示すべきリンクをクリック:のは、例のために私はそのように呼び出すことができることを何かを、得るべきであるとしましょう。あなたはjQueryプラグインは、それがjQueryメソッドを連鎖するのに役立つだろうので、あなたがjQueryオブジェクトを返すことを確認してください書くたび

はあなた

+0

おそらく、「プラグインを作成する方法」ではなく、JavaScriptを使用して作成する方法はありません。プロトタイプ拡張を見て、実行直後に実行する関数や他の素晴らしいものを宣言する方法を見てみる必要があります。私も同じことに直面しました。 – PhD

+0

ああ、あなたが簡単に既存のプラグインを解読して、 – PhD

答えて

2

その他の回答はほとんど正しいですが、ドル記号を使用する場合は、匿名関数にラップしてjQueryオブジェクトを渡します。そうしないと、他のライブラリと競合する危険性があります。

(function($) { 
    $.fn.myMessagePlugin = function(options) { 
     return this.click(function() { //jQuery object, to be returned 
      alert(this.href); //html element 
     }); 
    } 
})(jQuery); 
3

ありがとうございます。

$.fn.myMessagePlugin = function(options) { 
    return this.each(function(){ 
     //plugin logic here 
     $(this).click(function() { 
      alert(this.href); 
     }); 
    }); 
} 
+0

内部の 'this'が' dom'オブジェクトであることを開始することができるでしょう。 OPは、プラグイン要件ごとに各ブロック内にロジックを書き込むことができます。 – ShankarSangoli

+0

@Agzam - これはあなたを助け、簡単な 'jQuery'プラグインを書く方法を理解できるようにしたい – ShankarSangoli

1

あなたがオプションのデフォルトを定義し、$ .extend

使用してそれらを拡張するために

も良い練習がある(私は、感謝をベースとして、前の例を使用しています)だけでなく、未定義の指定お奨めされます

(function($, undefined) { 
    $.fn.myPlugin= function(options) { 
     var opts = $.extend($.fn.myPlugin.defaults, options); 

     return this.click(function() { //jQuery object, to be returned 
      alert(this.href); //html element 
     }); 
    } 

    $.fn.myPlugin.defaults = { 
     "option1": 1, 
     "option2": 2 
    } 
})(jQuery); 
関連する問題