JQuery の知識を広める
知識 1: JQuery でプラグインを作成する場合、コア メソッドは次のとおりです:
$.fn.extend(object) は、JQuery インスタンスにメソッドを追加するものとして理解できます。
基本的な定義と呼び出し:
知識 2: jQuery(function () { }) と (function ($) { })(jQuery); の違い:
(function ($) { })(jQuery); 匿名関数を定義します。ここで、jQuery はこの匿名関数の実際のパラメータを表します。通常、JQuery プラグイン開発で使用され、プラグインのプライベート ドメインを定義する役割を果たします。
1. スコープを定義する: JQuery プラグインを定義するには、まず外部干渉のない場所にプラグインのコードを配置する必要があります。より専門的な用語で言うと、このプラグインのプライベート スコープを定義する必要があります。外部コードはプラグイン内のコードに直接アクセスできません。プラグイン内のコードはグローバル変数を汚染しません。これにより、プラグインと実行環境の間の依存関係がある程度切り離されます。そうは言っても、プラグインのプライベート スコープはどのように定義するのでしょうか?
3. デフォルト値の設定: .net コントロールを定義するのと同じように、JQuery プラグインを定義します。完璧なプラグインは、比較的柔軟な特性を備えている必要があります。このコードを見てみましょう:
プログラマは、変数名の変更や行の変更などの革新を好みます。 vardefaults = {} がデフォルト属性を表すために使用されているのを見て、JQuery プラグインを作成するときは違うものにしようと思い、デフォルト属性を表すために vardefault01 ={} と vardefault02 ={} を使用しました。その場合、デフォルトの属性名はあらゆる種類になり、さらに悪化します。したがって、JQuery プラグインを作成するときは、デフォルトのプロパティを定義するときに、defaults 変数を使用してデフォルトのプロパティを表すことをお勧めします。このようなコードは読みやすくなります。
誰かが次のコード行を見た: var options = $.extend(defaults, options) と眉をひそめ、混乱を表しました。それでは、最初に次のコードを見てみましょう:
var a = $.extend(obj01, obj02);
var b = $.extend(true, obj01, obj02);
var c = $.extend({}, obj01, obj02);
var d = $.extend(true,{}, obj01, obj02);
コードを開発環境にコピーし、a、b、c、d の値をそれぞれ見てみると、var options = $.extend(defaults, options) の意味がわかります。オプションがデフォルトの値をオーバーライドし、その値をオプションに割り当てることを示します。
プラグイン環境では、ユーザーが属性をデフォルト値で設定しない場合、ユーザーが設定した値がプラグインのデフォルト値をオーバーライドすることを意味します。はまだ保持されています。
4. JQuery セレクターのサポート: JQuery セレクターは JQuery の優れた機能です。私たちのプラグインが JQuery セレクターをサポートしないように作成されている場合、それは非常に残念です。 JQuery プラグインで複数のセレクターをサポートするには、コードを次のように定義する必要があります:
5. JQuery リンク呼び出しのサポート: 上記のコードは完璧に見えますが、実際にはそれほど完璧ではありません。リンク呼び出しは今のところサポートされていません。リンク呼び出しの効果を実現するには、ループの各要素を返す必要があります
このような定義はリンク呼び出しをサポートできます。たとえば、次のような呼び出しがサポートされています: $(".div").easySlider({prevId:"",prevText:""}).css({ "border-width": "1", "border-color" : "red ", "border-bottom-style": "点線" });
6. プラグインのメソッド: プラグインの機能を実装するには、多くの場合、数百、数千、場合によっては数万行にも及ぶ大量のコードが必要になります。このコードを構造化するには関数を使用する必要があります。最初の点で述べたように、プラグインで定義したメソッドを外部から直接呼び出すことはできません。プラグインで定義したメソッドは外部環境を汚染しません。次に、プラグインでいくつかのメソッドを定義してみます:
//step03-b ユーザー定義属性、デフォルト属性をマージ
var options = $ .extend (defaults, options);
//step4 は JQuery セレクターをサポートします
//step5 はチェーン呼び出しをサポートします
return this.each(function () {
//step06-b はプラグイン メソッド
showLink(this);
});
ステップ 06-a: showLink() というメソッドがプラグイン内で定義されています。このメソッドは、C# クラスのプライベート メソッドに似ており、使用することはできません。プラグイン内で。ステップ step06-b は、プラグイン内のメソッドを呼び出す方法を示しています。