2013-08-07 43 views
-1

我正在研究這個JS Bin和一切工作正常,除非我想讓這個彈出式菜單(從懸停1秒後出現)留在,直到mouseout因此用戶可以懸停在列表上。jQuery - 懸停彈出直到鼠標移出

我該怎麼做?

+2

請張貼的代碼量最小仍然顯示問題,在這裏和小提琴或完事。 – FakeRainBrigand

+0

@FakeRainBrigand是的,我明白這一點。我應該只隔離問題區域。感謝您指出了這一點! –

+0

我會推薦使用一個插件,它會使這更容易,並有很多選擇。過去我曾使用過http://qtip2.com/,取得了很大的成功。 – jhanifen

回答

0

試試這個,

$("Id").hover(function(){$("#popId").fadeOut(1000);$("#popId").fadeIn(500);});

+0

我不確定這種方法,因爲它只會迫使它停留在預先定義的時間間隔內......我希望它保持與鼠標懸停在上面。感謝您的輸入! –

1

嘗試

$(function() { 
    var $popup = $('.popup'); 

    $popup.hover(function() { 
     clearTimeout($popup.data('outTimeout')) 
    }, function() { 
     $(this).finish().fadeOut(); 
    }) 

    $('.input-block-level').hover(function() { 
     var target = $(this).attr('id'); 
     clearTimeout($popup.data('outTimeout')) 
     var timeout = setTimeout(function() { 
      $popup.fadeIn().insertAfter('#' + target); 
     }, 1000); 
     $popup.data('inTimeout', timeout) 
    }, function() { 
     clearTimeout($popup.data('inTimeout')) 
     var timeout = setTimeout(function() { 
      $popup.stop(true).fadeOut(); 
     }, 300); 
     $popup.data('outTimeout', timeout) 
    }); 

}(jQuery)); 

演示:JSBIN

+0

它就像一個魅力!順便說一下,'inTimeout'和'outTimeout'從哪裏來?我只是想知道。謝謝! –

+0

@SeongLee我將'setTimout()'調用的引用存儲爲那些數據屬性,以便稍後可以引用它們。 –

+0

謝謝。只是變量被聲明爲'timeout',但是被使用的'out'和'in'前置了所以想知道這個引用沒有錯誤。 –