2011-11-28 52 views
0

我想知道如何用javascript打開一個隱藏的div,但用戶在一秒鐘內懸停而不是立即。我想這樣做,因爲現在你將鼠標掃過頁面,即使我沒有故意懸停在這些div上,這些div也會打開。我要使用jQuery暫停開放div onmouseover

這是我在的地方代碼:

function ShowMemberCats() 
{ 
    // TURN OFF OTHER FRAMES // 
    document.getElementById('BlogCats').style.display = 'none'; 
    document.getElementById('VideoCats').style.display = 'none'; 
    document.getElementById('AudioCats').style.display = 'none'; 
    document.getElementById('ImageCats').style.display = 'none'; 
    document.getElementById('CouponCats').style.display = 'none'; 
    document.getElementById('AdsCats').style.display = 'none'; 
    // OPEN VIDEO FRAME // 
    document.getElementById('MemberCats').style.display = ''; 
} 

任何幫助將不勝感激..

提前許多感謝,保羅

回答

1

當光標位於鏈接(onmouseover)上時,啓動一個計時器(setTimeout)。
如果此計時器達到1秒鐘,顯示您的div。
如果光標離開鏈接(onmouseout),取消您的計時器(clearTimeout)。

1

這個概念很好地顯示here。它不完全一樣,也不那麼優雅,但它表明了你想要實現的原則。

<script type="text/javascript"> 

    var ie = document.all; 
    var timeoutId; 
    var timeoutObj; 

    document.onmouseover = function(e) { 
    var obj = ie ? event.srcElement : e.target; 
    if (obj.className=='testblock') { 
     timeoutObj = obj; 
     timeoutId = setTimeout("delay()", 2000); 
    } 
    } 

    document.onmouseout = function(e) { 
    var obj = ie ? event.srcElement : e.target; 
    if ((obj.className=='testblock') && timeoutId) 
     clearTimeout(timeoutId); 
    } 

    function delay() { 
    document.getElementById('output').innerHTML = timeoutObj.style.backgroundColor; 
    } 

</script> 
+0

我使用全局事件處理程序有點像你的例子大部分時間,他們非常強大和靈活。 – david