jQuery函数回调在自定义类/对象中不起作用

时间:2015-06-10 15:10:55

标签: javascript jquery class object callback

所以对编程是个新手,如果这是一个新手问题,请原谅我。我正在创造一个简单的波浪效果,以创造一个移动水的幻觉。我用jquery中的一个简单函数做到了这一点并且工作正常。我正在学习OOP,所以我的代码对于我正在研究的这个项目更有条理。我创建了一个类来处理这个动画。动画有效但只发射一次。我需要它继续射击以创造幻觉。函数回调按正常的程序方式工作,但似乎在对象类中不起作用。我研究了这个并研究过这个问题,找不到这个具体问题的答案。任何帮助将非常感激。我的代码如下。

    function Waves(selector){
      this.selector = selector;
      this.animateWaves = function(forward,backward,speed){
        $(selector).velocity({translateX: forward},speed); 
        $(selector).velocity({translateX: backward},speed,animateWaves);
      };
    };
   var surfaceWaves = new Waves('#topWaves');
   surfaceWaves.animateWaves('+=40','-=40','1000');

1 个答案:

答案 0 :(得分:0)

修改 实际上,我的第一个解决方案不起作用,因为回调的上下文是元素,而不是对象。这是工作代码和jsfiddle

function Waves(selector){
  this.selector = selector;
  this.animateWaves = function(forward,backward,speed){
    var self = this; 
    $(selector).velocity({translateX: forward},speed); 
      $(selector).velocity({translateX: backward}, speed, function () {
          self.animateWaves(forward,backward,speed);
      });
  };
};
var surfaceWaves = new Waves('#topWaves');
surfaceWaves.animateWaves('+=40','-=40','1000');

删除旧代码错误代码