1

私は Aptana を使用して JS を作成し、最近 jQuery バンドルをインストールしました (主にコード補完のためだけでなく、私が知らない新しいクールなもののためにも)。

そのため、入力readyして押すCtrl + <Space>と 2 つのオプションが表示され、そのうちの 1 つdocument readydocument ready (safe)選択すると、自動的に$(document).ready(function(){})またはjQuery(document).ready(function($){})それぞれ配置されます。

しかし、それは無関係です。$(someElement).clコード補完機能を使用するとオプションclickが表示され、それを選択すると次のコードが表示されます。

$(someElement).click(function() {
  ${0:
\}});

(関連性があります。後で説明します)

同様に、プラグインを作成しようとしていて、入力pluginして押しCtrl + <Space>てオプションplugin (method)を選択すると、次のコードが得られました。

;(function($) {
}
$.fn.pluginName = function(options) {
  var opts = $.extend({}, $.fn.pluginName.defaults, options);

  return this.each(function() {
    var $this = $(this);

    ${6:
    var o = $.meta ? $.extend({\}, opts, $this.data()) : opts;
  }

  });

  // private function for debugging
  function debug($obj) {
    if (window.console && window.console.log) {
      window.console.log($obj);
    }
  }
};

// default options
$.fn.pluginName.defaults = {
  defaultOne:true,
  defaultTwo:false,
  defaultThree:'yay!'
};

})(jQuery);

まず、私が知る限り、一般的なプラグインの書き方は次のようになります。

(function($) {
   $.fn.plugin = function(args) {
      //...
   }
})(jQuery);

defaultsそして、プラグインとして、$.fn.plugin.defaults = {...}またはプラグイン内で定義しvar defaults = {...}、プラグイン内で a{}defaultsandで拡張できますargs。私がよく知っているのはこれだけです。

そう:

  • ;Aptana jQuery バンドルが最初にを入れるのはなぜですか?
  • function($){}beforeを閉じるのはなぜ$.fn.pluginNameですか?
  • そして何よりも、これ${0:$.click()例と例で${6:は何plugin (method)ですか?
  • $.metaまた、とは実際には何$this.data()ですか?

それはすべて非常に紛らわしいです(しかし、奇妙にエキサイティングです)...

4

1 に答える 1