jQuery: 解绑transtionend事件

jQuery: Unbinding transtionend event

每次调用此动作时,我都希望对象先向左移动,然后向上移动。第一次没问题,但是第二次,对象沿对角线移动,而不是步进。

目前我有这个:

myObject.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ 
    myObject.css("left", 100);
    myObject.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
        myObject.css("top", 50);
    });
});
  1. 关于如何实现步进动画还有其他建议吗?
  2. 如何解除这两个 "bindings" 的绑定,以便 运行 每次操作都像第一次一样?

您需要删除与 .off() 的旧绑定。否则,您将累积多个事件处理程序,并且只要其中一个事件发生,它们都会 运行。

myObject.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd")
  .on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),
  function() {
    myObject.css("left", 100);
    myObject.off("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd")
      .on("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),
      function() {
        myObject.css("top", 50);
      });
});