javascript - Accordion 可点击并悬停?

标签 javascript jquery html css

如何使 Accordion 菜单既可点击又可悬停? 在以下情况下,悬停第一次起作用。 但是,一旦触发点击事件,悬停就不起作用了

demo

上面的演示,悬停最初是有效的。 但是如果我在单击鼠标后重试,悬停不起作用

代码在这里

.accordion-body{
      display:none;
}

.accordion:hover div{
      display:block;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
function expandAccordionBody(){
var myDivElement = document.getElementById("accbody" );
var cStyle=window.getComputedStyle(myDivElement, null);
if(cStyle.display=='block'){
myDivElement.style.display="none";
}else{
myDivElement.style.display="block";
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <div class="accordion">
                    <div onclick="expandAccordionBody()"> Head </div> 
                    <div id="accbody" class="accordion-body">
                       Body
                    </div>
    </div>
</body>
</html>

最佳答案

您将不得不稍微修改您的代码并使用 jQuery 的 on 来绑定(bind) clickmouseover 事件以及 toggle 实现元素可见性

$("#acchead").on('mouseover click',function() {
  $("#accbody").toggle("show");
});
.accordion-body{
      display:none;
}
.accordion:hover div{
      display:block;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"         
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
    <div class="accordion">
                    <div id="acchead"> Head </div> 
                    <div id="accbody" class="accordion-body">
                       Body
                    </div>
    </div>
</body>
</html>

关于javascript - Accordion 可点击并悬停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320889/

相关文章:

javascript - 在 SPA 中使用 ko.mapping 和 Knockout 组件

javascript - 将另一个页面H1内容存储在var中并检查是否有单词

javascript - Jquery/CSS 问题 #2 : Hover Elements triggering unwanted hovering action

javascript - 将 ISO 日期更改为短日期 JavaScript

javascript - 如何在 codeigniter 中制作星级评分系统?

javascript - 滚动时更改导航的背景

javascript - jquery 和 javascript native

javascript - 预加载图像时设置超时

javascript - 在for循环中自执行匿名点击功能

javascript - 如何在 Javascript 的正则表达式中使用括号?