2011-05-29 105 views
2

使用jQuery 1.5.1 试过这段代码:head section以及in line,in doc ready函数以及out。没有什么能让它工作,我很难过。它适用于所有其他浏览器。jquery hover()IE7&IE8

应该发生的事情是,当用户将鼠标悬停在类“lsr”的div上时,显示另一个div:none。

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("div.lsr").hover(
      function() { $("#lsr").show(); }, 
      function() { $("#lsr").hide(); } 
     ); 
    }); 
</script> 
... 
<div class="lsr"></div> 

<div id="lsr""> Some Text appears </div> 

ok ....所以答案是,IE不喜欢空的div。它显然不会呈现它。我发现最好的解决方案是在空格使用下面的CSS .....我试着添加填充和 没有任何工作。什么工作是在空div上使用下面的CSS。

.lsr { 
    ... 
    background-color: #fff; 
    filter:alpha(opacity=0); 
    opacity:0.0; 
} 
+0

您的脚本标记tho中缺少type =“text/javascript”属性,这不太可能解决问题 – marsbear 2011-05-29 19:44:51

+0

[此演示](http://jsfiddle.net/hyAHP/)在IE8中正常工作。你包括正确的jQuery?这听起来像是一个JavaScript错误。它肯定需要**内部的** jQuery [document.ready](http://docs.jquery.com/How_jQuery_Works#Launching_Code_on_Document_Ready)包装器。 – andyb 2011-05-29 19:50:40

+0

是IE阻止JavaScript的安全策略吗?其他启用JavaScript的网站是否有效? – andyb 2011-05-29 20:01:55

回答

2
  • div.lsr没有内容,这将使它强大很难悬停(根据您的CSS)
  • 你有一个额外"<div id="lsr"">

如果我解决这些问题它适用于我:JSFiddle

根据意见编辑 IE在识别div上的事件时遇到问题,该事件没有内容,它的内容为position: absolute。要修复,请尝试使用不同的CSS定位或将内容添加到div(例如&nbsp;

+0

该div的大小和宽度关闭100px; – 2011-05-29 19:55:41

+0

JSFiddle演示适合你吗?如果是这样,你能指出它和你的区别吗? – newtron 2011-05-29 19:57:10

+0

你的权利与空白div有关。正如您在实际网站上看到的,它们被设置为宽度和高度为100px,并且它们浮动在图像上。如果我添加一个'。'当我将鼠标悬停在它上面时,它们就会发挥作用。所以...问题是如何在IE中解决这个问题? – 2011-05-29 20:17:19

1

文件准备好了吗?它不在你的示例代码中,而是存在于你自己的代码中?

$(function(){ 
    $("div.lsr").hover(
     function() { $("#lsr").show(); }, 
     function() { $("#lsr").hide(); } 
    ); 
}); 
+0

是的,我只是简单的...实际的代码现在有问题。 – 2011-05-29 19:55:18