今日、jQueryに関する私の唯一の質問は、jQuery.extend()
とjQuery.fn
(プラグインで使用される)をいつ使うべきかということです。バジルゴールドマンは "Defining your own functions in jQuery"に説明があるようですが、何らかの理由で私はまだ私が最良の情報を持っていることに満足していません。 jQuery.fn
で作業を開始したら、本格的なプラグインを構築する必要があるかどうかを検討する必要があります。これは、拡張、新しい関数の追加、プラグインの構築といった3つの問題を意味します。この3つをすべて綿密に説明する必要があります。これは説明に値するのですか?jQuery:拡張、新しい関数の追加とプラグインの構築?
5
A
答えて
7
あなたはあまりにも難しいと思うかもしれないと思います。 :) jQueryのソースに
- 伸びる()は一度定義し、両方の名前空間で使用される:
jQuery.extend = jQuery.fn.extend = function() { .. };
技術を、すべてのこの機能は、一緒にマージプロパティオブジェクトではありません。
だから、最も基本的なユースケースには、あなただけの単一のオブジェクト(多くのプラグインのオプション・パラメータのような)の中に2つのオブジェクトをマージ:プレーンジェーン$ || jQueryの名前空間に機能を拡張
this.options = $.extend({}, defaultOptions, userOptions); // Just mergin' objects
その関数をjquery名前空間に静的な関数として追加するだけです。 jQuery名前空間に入る関数は、一般に、要素を操作する必要のない関数です。これらはisArray()やisFunction()のような関数で、より多くの束があります。
var noWhiteSpace = $.trim(string); // No element needed
jQuery.fnはjQueryオブジェクトに渡される要素に基づいてアクションを実行する機能のため多かれ少なかれ予約されています。これらは通常のプラグインのようなもので、jQueryで慣れているほとんどのものです。
$('div').css('border', '1px solid green'); // Do work on a set of elements
さらに興味深いことに、jQueryソースの$ .data()関数のようなものを見ると、両方の名前空間で定義されています。これは$ namespaceで最初に定義され、最初のパラメータとしてandを取ります。後で$ .fnに拡張され、最初のパラメータが 'this'として設定された最初の関数が呼び出されます。
あなたが探しているものが欲しいです!
関連する問題
- 1. jQueryクラスと関数の拡張問題
- 2. Jqueryプラグインで新しいクリックイベントを追加
- 3. 新しい環境へのWolfSSLライブラリの構築と追加
- 4. 私が構築していChromeの拡張機能でChromeの拡張機能
- 5. jqueryを使用して新しい属性を追加するjavascript関数オブジェクトを拡張する方法は?
- 6. jQueryプラグインを拡張する
- 7. jQueryプラグインを拡張する
- 8. jqueryプラグインを拡張して負の数を確認する
- 9. jQueryプラグインのオーサリング - jQueryオブジェクトとjQuery.fnオブジェクトの拡張
- 10. Immutable.jsの追加の拡張?
- 11. Azure関数の拡張を追加するには
- 12. YUI3プラグインとクラスの拡張
- 13. JavaScriptの構文を拡張してタイピングを追加する
- 14. vimとNERDツリー拡張 - ファイルの追加
- 15. 拡張されたUITablviewcellで新しいセルを追加
- 16. Chrome拡張機能に新しいスコープを追加する
- 17. Maven:sarの構築とファイルの追加
- 18. 新しいタブとウィンドウ用のChrome拡張機能にイベントリスナーを追加
- 19. Skypeの拡張機能を構築したいと思っています。
- 20. パフォーマンスに関するJavaScript拡張機能とNPAPIプラグインの違い
- 21. Pythonリストを拡張し、すべての拡張値を新しい行に追加します。
- 22. jQueryの(拡張)(拡張中)
- 23. サービスファブリックへの希望状態構成拡張の追加VMSS
- 24. 複数のプラグインからのRCP拡張
- 25. ES6プラグインをjQueryプロトタイプに拡張する
- 26. カスタムメソッドでJQuery Validatorプラグインを拡張する
- 27. jquery関数に新しいプロパティを追加する
- 28. C++でlistControlクラスを拡張して新しい関数を追加する方法は?
- 29. Eclipseプラグイン拡張と展望
- 30. jqueryの拡張テキストにJavaScriptのトランジションを追加するには?
私はあなたの答えをありがとう!私はYUI 2.xからレガシーコードをjQueryに移しているので、「難しい」と考える必要があります。[ 今、プラグインを構築する必要があるのは、「プライベート」サポートがある場合です"public"拡張機能のための関数---右? – rasx
これは、プラグインを使用する理由ですね、うん! –