0

しばらくお待ちください。js初心者です。サンクス。私はボイラープレートで遊んでい ます https://github.com/jquery-boilerplate/jquery-boilerplate/blob/master/src/jquery.boilerplate.js

その中に2つの新しい機能を追加しました

   init: function () {

      this.mynewFunction2();
   },

    mynewFunction1: function (){

      console.log('ok');
    },

    mynewFunction2: function (){

       $('.link').click(function(){
             this.mynewFunction1();
       });
    }

おそらくすでに問題が発生していますが、問題は mynewFunction1 を jquery オブジェクトに渡す方法です。jqueryオブジェクト内で呼び出されるために新しい関数を割り当てる必要があると彼らが言う投稿をいくつか見つけましたが、そこで少し迷っています。時間があれば、上記の私のコードに基づいた例を投稿してください。ありがとうございました!

4

2 に答える 2

1

新しい関数は新しいスコープを作成し、それが新しい を作成しますthis:

mynewFunction2: function (){
   $('.link').click(function(){
         this.style.color = 'red';
         // this inside the event handler is the clicked element
   });
}

無名関数をドロップして直接渡すことができます:

mynewFunction2: function (){
   $('.link').click(this.mynewFunction1);
}

または、パラメーターを渡す必要がある場合:

mynewFunction2: function (){
   var that = this; // references the parent object
   $('.link').click(function() {
      that.mynewFunction1(this); // passes the clicked element
   });
}
于 2013-09-21T14:32:44.180 に答える