所以对编程是个新手,如果这是一个新手问题,请原谅我。我正在创造一个简单的波浪效果,以创造一个移动水的幻觉。我用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');
答案 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');
删除旧代码错误代码