【问题标题】:Show/hide div onmouseover/onmouseout Javascript显示/隐藏 div onmouseover/onmouseout Javascript
【发布时间】:2012-08-14 16:53:46
【问题描述】:

我的页面上有一个超链接。我想在鼠标悬停超链接时显示一个 div,并在鼠标移出时隐藏它。

我的html:

<a onmouseover="showDiv(this)" onmouseout="hideDiv(this)">
    <img>
    <div class="inner-block">
         Content
    </div>
</a>

Javascript:

function showDiv(elem) {
    elem.getElementsByTagName("div").style.visibility="visible";
}

function hideDiv(elem) {
    elem.getElementsByClassName("inner-block2").style.visibility="hidden";
}

和 CSS:

.inner-block {
    visibility: hidden
}

我已经尝试过 getElementsByTagName、getElementsByClassName,无论我尝试得到什么

Uncaught TypeError: Cannot set property 'visibility' of undefined

【问题讨论】:

  • 在那个div之后是a标签的关闭吗?
  • 是的,a标签的关闭是在div之后-

标签: javascript html css onmouseover onmouseout


【解决方案1】:

试试这个:

function showDiv(elem) {
    elem.getElementsByTagName("div")[0].style.visibility="visible";
}

function hideDiv(elem) {
    elem.getElementsByTagName("div")[0].style.visibility = "hidden"
}

因为 getElementsByClassName("inner-block2") 将返回 NodeList

【讨论】:

  • 我试试这个,现在我得到了问题:未捕获的类型错误:无法读取未定义的属性“样式”
  • @deakolt 我做了更改,现在试试
  • 非常感谢您的帮助,我试过了。现在我得到: Uncaught TypeError: Cannot call method 'getElementsByTagName' of undefined during mouseover event
  • 顺便说一句,你什么时候加载你的javascript?将您的脚本放在 dom 准备好之后。这意味着把它放在结束体标签之前。因为上面的解决方案对我来说很好用
  • 我仍然不确定这是怎么回事。奇怪的是,elem.getElementsByTagName("img")[0] 工作正常,但 elem.getElementsByTagName("div")[0] 不工作。
猜你喜欢
  • 1970-01-01
  • 2013-09-06
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
相关资源
最近更新 更多