2011-01-25 23 views
1

我現在用的是「活」的技術jQuery中添加使用下面的代碼上懸停的圖標和對這個網站:http://vitaminjdesign.com/adrian/堆積在現場事件處理的Jquery動畫

$('a').live('mouseover mouseout', function(event) { 
     if (event.type == 'mouseover') { 
      $('<a href="#"><img src="images/facebook.gif" class="facebook" alt="facebook"></a>').appendTo(this).fadeIn(500); 
      $('<a href="#"><img src="images/twitter.gif" class="twitter" alt="twitter"></a>').appendTo(this).fadeIn(500); 
     } else { 
      $('a').find('.facebook,.twitter').fadeOut(500); 
     } 
}); 

這工作完全,但有是圖標加載的積累。通常我使用.stop()命令,但這不起作用,也許是因爲我正在使用實時事件處理程序?有什麼建議麼?此外,圖標似乎並沒有消失,只是淡出。

回答

0

嘗試.stop(真,真)像這樣:

$('a').live('mouseover mouseout', function(event) { 
     if (event.type == 'mouseover') { 
      $('<a href="#"><img src="images/facebook.gif" class="facebook" alt="facebook"> </a>').appendTo(this).fadeIn(500); 
      $('<a href="#"><img src="images/twitter.gif" class="twitter" alt="twitter"> </a>').appendTo(this).fadeIn(500); 
     } else { 
      $('a').find('.facebook,.twitter').stop(true, true).fadeOut(500); 
     } 
}); 

jQuery API - stop

0

嘗試clearQueue()

這應該清除事件隊列。

+0

clearQueue是在.stop第一值(X,X) – JCHASE11 2011-01-25 18:36:44

+0

右,clearQueue不限於動畫雖然,所以它可以是有用的,如果你想停止其他事件。 – derek 2011-01-25 18:42:28