2011-09-10 91 views
0

工作,這是我的代碼:.stop()不懸停選擇

$(function(){ 
    $("#deals ul li ul").hover(function(){ 
    $(this).stop().find(".trans").fadeIn("fast"); 
    $(this).stop().find(".text").fadeIn("fast"); 
    return false; 
    },function(){ 
    $(this).find(".trans").fadeOut("fast"); 
    $(this).find(".text").fadeOut("fast"); 
    }); 
    return false; 
}); 

當你快速懸停了幾次它會加載每秒這些行動和stop()應該讓它停止,但它在這裏不起作用,任何想法將不勝感激。

回答

1

.stop()需要位於可能動畫的元素上。

你的ul沒有收到動畫,所以它對.stop()沒有任何好處。這是動畫的.trans.text元素。

$(function(){ 
    $("#deals ul li ul").hover(function(){ 
    $(this).find(".trans").stop().fadeIn("fast"); 
    $(this).find(".text").stop().fadeIn("fast"); 
    return false; 
    },function(){ 
    $(this).find(".trans").fadeOut("fast"); 
    $(this).find(".text").fadeOut("fast"); 
    }); 
    return false; 
}); 
+0

是的,但它存在淡入效果的問題。問題是當你快速懸停並再次懸停時,淡入效應將被拒絕完全顯示,它將始終停止在中游... – Nima

+1

使用'.fadeTo(「fast」,1)'和'.fadeTo(「fast」 0)'而不是。 – user113716

+0

謝謝,但這是一個更好的方法$(this).stop(true,true); – Nima