jQuery动画无限无效

时间:2015-10-31 09:05:10

标签: javascript jquery animation

我有这段代码

var goRight = function() {
  $(this).animate({'left:' '40px'}, 1000, goLeft);
};

var goLeft = function() {
  $(this).animate({'left:' '-40px'}, 1000, goRight);
};

var main = function() {
  $('.square').hover(function() {
    $(this).toggleClass('active');
  });
$('.square').goRight();
};

$(document).ready(main);

它应该将方块(div)向右移动然后向左无限移动,当用户将鼠标悬停在其上时将其变为蓝色。但它不起作用。问题可能出在goRightgoLeft函数中。因为如果我完全删除它们,悬停会改变颜色。当这些功能无效时。

1 个答案:

答案 0 :(得分:1)

你需要像这样进行链接



$.fn.goRight = function() {
  this.animate({
    'left': '40px'
  }, 1000, function() {
    $(this).goLeft()
  });
  return this;
};

$.fn.goLeft = function() {
  this.animate({
    'left': '-40px'
  }, 1000, function() {
    $(this).goRight()
  });  
  return this;
};

var main = function() {
  $('.square').hover(function() {
    $(this).toggleClass('active');
  });
  $('.square').goRight();
};

$(document).ready(main);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div style="width:100px;height:100px;background:black;position:relative;" class="square"></div>
&#13;
&#13;
&#13;

有关jQuery插件开发的更多信息:https://learn.jquery.com/plugins/basic-plugin-creation/