jQuery bind unbind анимация - PullRequest
       9

jQuery bind unbind анимация

0 голосов
/ 11 сентября 2011

Я сделал этот кусок кода, я пытаюсь анимировать блок текста / div вперед и назад, но почему это работает только в первый раз для функции "placeRight"?Что-то не так с атрибутом right : "+=750"?

$(document).ready( function ( ) {
   $("#text").click(placeRight);
});   

    var placeRight = function() {     
      $("#text").animate( { right :  "+=750" }, 1300); 
      $("#text").unbind("click"); 
      $("#text").click(placeLeft);
    }

    var placeLeft = function() {     
      $("#text").animate( { left :  "+=750" }, 1300); 
      $("#text").unbind("click");
      $("#text").click(placeRight);
    }

Ответы [ 3 ]

1 голос
/ 11 сентября 2011

Вы можете сделать это с меньшим количеством кода. Вот рабочая демонстрация: http://jsfiddle.net/kkZtD/1/

0 голосов
/ 11 сентября 2011

попробуйте это:

$(document).ready(function(){
   $("#text").click(function(){
      $(this).animate({ right: "+=750" }, 1300).animate({ left: "0" }, 1300);
   });
});
0 голосов
/ 11 сентября 2011

Да, у вас есть двойное время $("#text").animate( { left : "+=750" }, 1300);
поэтому вы всегда пытаетесь поместить его в положение + 750px

изменить это так

$(document).ready( function ( ) {
   $("#text").click(placeRight);
});   

var placeRight = function() {     
  $("#text").animate( { right :  "+=750" }, 1300);
  $("#text").unbind("click"); 
  $("#text").click(placeLeft);
}

var placeLeft = function() {     
  $("#text").animate( { left :  "-=750" }, 1300); //or { right: 0 }
  $("#text").unbind("click");
  $("#text").click(placeRight);
}
...