2011-12-12 80 views
3

我正在使用JqueryToolTip爲我的頁面上錨點內的一系列圖像設置風格和動畫工具提示。問題是,當工具提示長度超過30個字母時,它不會在div內垂直居中。所以我寫了這個jquery,爲小於30個字母的任何工具提示添加一個.small類。這產生了我想要的效果,除了它僅適用於第二次懸停。我如何在首次懸停時發生?jquery IF/ELSE語句懸停功能僅在第二次懸停時發射?

我還是jquery的新手。我假設它與我有代碼的訂單有關,但我無法弄清楚。

$("#loop-wrapper a img").hover(function(){ 
    var getLength = $(this).attr("alt").length; 
    if(getLength < 30){ 
    $(".tooltip").addClass("small"); 
    } 
    else{ 
    $(".tooltip").removeClass("small"); 
    } 
}, function(){ 
    $(".tooltip").removeClass("small"); 
}); 

回答

2

我會重構它使用.toggleClass一個開關參數,只是一個功能參數.hover

$("#loop-wrapper a img").hover(function() { 
    var getLength = $(this).attr("alt").length; 
    $(".tooltip").toggleClass("small", (getLength < 30)); 
}); 
+0

這幫助了很多,有些閃爍走了,但我仍然有同樣的問題。只有在第二次懸停時,文字纔會居中。我很確定這是由於我使用的jquerytools工具提示。這裏是調用刀尖 '$代碼( 「#環路包裝器[標題]」)工具提示({ \t \t位置: 「底部中心」, \t \t偏移:[-18,0] });' 然後它將div添加到具有工具提示的HTML標記的底部,它使用絕對定位將元素放置在圖像旁邊 –