1

私は再利用可能なプロジェクト用の小さなプラグインを書いていますが、それを開始する必要があります。最小限の骨を表示するためにそれを削除しました(以下):

( function ( window, document, undefined ) {

  var Plugin = function ( elem ) {
    this.elem = elem;
  };

  Plugin.prototype = {

    init : function () {
        // init stuff
    }

  };

  var inputs = document.querySelectorAll('input');
  for ( var i = 0; i < inputs.length; i++ ) {
    new Plugin(inputs[i]).init();
  }

})( window, document );

これで約 80% 完了しました。プラグインをどこで「呼び出す」かについて混乱しています。つまり、スクリプトは実行されますが、呼び出していません。

私は次のようなことをする必要があります:

for ( var i = 0; i < inputs.length; i++ ) {
    inputs[i].Plugin();
}

それを呼び出すのは、現在、オブジェクトの「新しい」を呼び出しているだけです。適切なセットアップ (jQuery スタイルだが jQuery なし) に関するヘルプは驚くべきものです。ありがとうございました!

必要に応じてフィドル:

4

2 に答える 2

1

DOM を拡張するのは悪い考えです。

しかし、簡単にするために、初期化をコンストラクターに移動します。これがコンストラクターの目的です。

(function (window, document, undefined) {
  function Plugin(elem) {
    this.elem = elem;
    // init stuff
  }
  Plugin.prototype.otherFunctions = …;

  var inputs = document.querySelectorAll('input');
  for (var i = 0; i < inputs.length; i++)
    new Plugin(inputs[i]);

})(window, document);
于 2013-07-16T18:39:33.560 に答える