2011-11-30 29 views
5

我有4個圖標,在鼠標懸停時,使用jquery動畫滾動div。如何在javascript中防止事件鏈接

問題是當我將鼠標懸停在所有四個圖標上時,懸停功能被鏈接在一起,甚至在鼠標懸停時,滾動動畫仍然運行,直到所有發生鼠標懸停的事件完成。

我想把它放在鼠標外面,所有等待執行的事件都被取消了!

發現以下來源:

<div id="sidebar-slider-nav"> 
    <div class="testimonials" onmouseover="sidebar_slider(0)"><img src="images/icons/testimonialsIcon.png"/></div> 
    <div class="facebook" onmouseover="sidebar_slider(280)"><img src="images/icons/facebookIcon.png"/></div> 
    <div class="twitter" onmouseover="sidebar_slider(560)"><img src="images/icons/twitterIcon.png"/></div> 
    <div class="news" onmouseover="sidebar_slider(840)"><img src="images/icons/blogIcon.png"/></div> 
    <div class="clear"></div> 
</div> 

和函數被調用是:

function sidebar_slider(val){ 
    $('#sidebar-slider').animate({scrollLeft:val},500) 
} 

沒有任何人知道的一個更好的方式來做到這一點?

對於我的問題的一個例子,請導航到http://a3mediauk.co.uk並看看側邊欄! Thankyou

回答

6
$('#sidebar-slider').stop(); 

將清除元素上的任何現有動畫。您也可以將其鏈接到您現有的代碼中:

$('#sidebar-slider').stop().animate({scrollLeft:val},500)