Javascript 暂停在MouseOver上打开div

Javascript 暂停在MouseOver上打开div,javascript,Javascript,我想知道如何用javascript打开一个隐藏的div,但是在用户将鼠标悬停在链接上一秒钟之后,而不是立即打开。我想这样做,因为现在你把鼠标扫过页面,这些div打开了,即使我没有故意在它们上面悬停。我不想使用jQuery 这是我的代码: function ShowMemberCats() { // TURN OFF OTHER FRAMES // document.getElementById('BlogCats').style.display = 'none';

我想知道如何用javascript打开一个隐藏的div,但是在用户将鼠标悬停在链接上一秒钟之后,而不是立即打开。我想这样做,因为现在你把鼠标扫过页面,这些div打开了,即使我没有故意在它们上面悬停。我不想使用jQuery

这是我的代码:

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 = '';
}
任何帮助都将不胜感激

多谢各位,
Paul

当光标位于链接上时(
onmouseover
),启动计时器(
setTimeout
)。
如果此计时器达到1秒,则显示您的div.

如果光标离开链接(
onmouseout
),请取消计时器(
clearTimeout
)。

这个概念显示得很好。它并不完全相同,也不那么优雅,但它显示了你想要实现的原则

<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>

var ie=document.all;
var-timeoutId;
var-timeoutObj;
document.onmouseover=函数(e){
var obj=ie?event.src元素:e.target;
if(obj.className=='testblock'){
timeoutObj=obj;
timeoutId=setTimeout(“delay()”,2000);
}
}
document.onmouseout=函数(e){
var obj=ie?event.src元素:e.target;
if((obj.className='testblock')&&timeoutId)
clearTimeout(timeoutId);
}
函数延迟(){
document.getElementById('output').innerHTML=timeoutObj.style.backgroundColor;
}

大多数时候,我使用的全局事件处理程序有点像您的示例,它们非常强大和灵活。