【发布时间】:2013-08-20 21:40:47
【问题描述】:
在以下标记中,“tip1”的可见性应该从“隐藏”更改为当父级鼠标悬停时显示。然后当点击“tip1”时,应该会出现“line1”。它在 Firefox 和 Chrome 中运行良好,但在 IE 中当然不行。
<div id="product-description" style="position:relative; float:left; width:35%">
<div onmouseover="display(this.firstChild)" onmouseout="getRid(this.firstChild)" style="position:absolute; left:146px; top:29px; z-index:2000">
<div id="tip1" onclick="showTip(this.nextSibling)">
<img "shadow.png" />
</div>
<div id="line1" style="position:absolute; left:15px; top:-5px;" onclick="closeTip(this)">
<img "fb.png" />
</div>
</div>
</div>
这里是对应的javascript:
<script>
function display(items){items.style.visibility = "visible";}
function getRid(items){items.style.visibility = "hidden";}
function showTip(tip){tip.style.visibility = "visible";}
function closeTip(tip){tip.style.visibility = "hidden";}
</script>
【问题讨论】:
-
您的 HTML 标记已损坏。您需要为
product-descriptiondiv 和带有onmouseover和onmouseout事件处理程序的 div 添加结束标签。此外,img标签需要src属性。如果修复后问题仍然存在,请提供有效的标记。 -
请确保包含您收到的任何错误,并说明您为解决问题所做的工作。
-
对不起,我是新来在这里发帖的...我没有将结束的间隔超过 4 次,所以它们被排除在外。此外,编辑对我大喊大叫,说在我达到“10”名声之前无法在此处发布图像,所以我只是关闭了 src 属性。该代码在 FF 和 Chrome 上正常运行,而不是 IE。在修复方面,我尝试使用 childNodes[0] 而不是 firstChild 无济于事。
@user2701398 -- 不同的浏览器以不同的方式处理损坏的 HTML。它在一个浏览器中工作而在另一个浏览器中不起作用的事实就是证明。调试此类问题的第一步是使用HTML Validator 并修复标记。
标签: javascript internet-explorer css-selectors nextsibling