-2

あまりリッチではないので、アプリケーションを構築します。それ以外の場合は、その目的で angularjs を使用できます。私は自分の JS コードを適切なモジュラー プログラミング アプローチに編成したいと考えていました。

例えば

   var SignUpModule = {
     elem: $('#id'), // unable to access jquery object here
     init: function (jQuery) {
       alert(jQuery('.row').html());
    }
};

 var application = {
modules: [],
addModule: function (module) {
    this.modules.push(module);
},
run: function (jQuery) {
    _.each(this.modules, function (module) {

        //Iterate each module and run init function
        module.init(jQuery);
    });


    }
  }


jQuery(document).ready(function () {
    application.addModule(SignUpModule);//add module to execute in application

    application.run(jQuery);//Bootstrap application

});

質問を実際のコードで更新したので見てください

4

1 に答える 1

0

あなたが犯した最大の間違いは、$.eachメソッドによって取得される匿名関数の匿名の最初のパラメーターを使用することです。最初の引数は単なるインデックスで、2 番目の引数は探していた要素です。以下に、作業コードがあります。

jQueryいいえ、どこでもオブジェクトを渡す必要はありません。それはグローバルです。それはすでにどこにでもあります。以下のコードで確認できます。

var SignUpModule = {
  elem: $('.row'), //jQuery works fine here
  init: function () {
    alert(this.elem.html());
  }
};

var application = {
  modules: [],
  addModule: function (module) {
    this.modules.push(module);
  },
  run: function () {
    $.each(this.modules, function (index, module) { //this function takes 2 parameters
      //Iterate each module and run init function
      module.init();
    });
  }
}

//document.ready
$(function () {
    application.addModule(SignUpModule);//add module to execute in application
    application.run();//Bootstrap application
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">alert <b>me!</b></div>

于 2014-11-02T20:03:36.317 に答える