将自定义函数传递给jquery对象

时间:2013-09-21 14:20:35

标签: jquery jquery-plugins

请耐心等待。 js初学者。日Thnx。 我正在玩样板文件 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对象中调用但我在那里有点丢失。所以如果你有空闲分钟,请你根据我上面的代码发布一个例子。 谢谢!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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
   });
}