如何在IE 6的某个特定DIV上启用鼠标悬停?

时间:2009-10-20 05:32:40

标签: javascript internet-explorer-6

如何通过javascript仅在IE 6的一个特定DIV上启用悬停。我只想在一个div上运行,但我发现网上有一些脚本可以实现这一点,但是它们应用于整个网站我认为渲染时间会增加,所以我想只在一个特定的div上进行悬停。

IE7。 js可以做到这一点,但有一些不需要的东西,我不想要所以我需要简单的短的JavaScript代码,以启用在IE 6中悬停

2 个答案:

答案 0 :(得分:1)

var elem = document.getElementById('divid');
elem.onmouseover = function(e) {
  if( !e ) {
    //if the browser did not pass the event information to the
    //function, we will have to obtain it from the event register
    if( window.event ) {
      //Internet Explorer
      e = window.event;
    } else {
      //total failure, we have no way of referencing the event
      return;
    }
  }
  // do operation using e
};

elem.onmouseout = function(e) {
// get e using code from above
};

这将允许您输入特定元素的代码,只需更改css或执行您想要的任何其他内容。

要了解哪些事件适用于哪个浏览器,您可以使用此功能: http://www.quirksmode.org/dom/events/index.html

答案 1 :(得分:1)

一个简单的onmouseover / onmouseout有一个缺点,当div有子节点并且你将这个孩子悬停时它也会被触发。因此,当您将鼠标悬停时,您将触发mouseout。每个框架都有类似mousenter / mouseleave的东西来处理这个问题。所以在JQuery中应该看起来像这样:

$('#myElement').mouseenter(toggleClass(true)).mouseleave(toggleClass());
function toggleClass(enter){
  if(enter){
     /*do something on mouseenter*/
  }else {
     /*do something on mouseleave*/
  }

/ 或更短的版本 / $('#myElement')(输入?'添加':'删除')+'类';     }