暂停打开div onmouseover

时间:2011-11-28 17:26:21

标签: javascript

我想知道如何使用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 = '';
}

任何帮助将不胜感激..

非常感谢, 保罗

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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>