首页 > 解决方案 > jQuery:解除绑定transtionend事件

问题描述

每次调用此操作时,我都希望一个对象首先向左移动,然后向上移动。它第一次工作正常,但第二次,对象对角线移动而不是步进。

目前我有这个:

myObject.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){ 
    myObject.css("left", 100);
    myObject.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
        myObject.css("top", 50);
    });
});
  1. 关于如何实现阶梯动画的任何其他建议?
  2. 如何解除这两个“绑定”的绑定,使其在每个动作中都像第一次一样运行?

标签: jquerytransitiontransitionend

解决方案


您需要删除旧的绑定.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);
      });
});

推荐阅读