【问题标题】:drop down menu on mouseout should remain visiblemouseout 上的下拉菜单应保持可见
【发布时间】:2014-05-29 07:32:01
【问题描述】:

当鼠标在 div 内移动时应该可以看到带有下拉菜单的按钮,这可以正常工作,但问题是当我将鼠标移出该 div 时,如果菜单是,我希望按钮和下拉菜单保持可见下拉,但如果菜单没有下拉,按钮应该被隐藏。我怎样才能做到这一点?(在给定的代码中,按钮和下拉菜单无论如何都会在鼠标移出时隐藏)

<div id="img_container" name="img_container" onmouseover="f()" onmouseout ="g()">
            <img src="image/images.jpg"  alt="Cover" >
            <div class="btn-group" id="cov" name="cov" >
               <button  class="btn dropdown-toggle" data-toggle="dropdown">Action
               </button>
               <ul class="dropdown-menu">
    <!-- dropdown menu links -->
                <li><a href="#">Secondary link</a></li>
            <li><a href="#">Something else here</a></li>
            <li class="divider"></li>
            <li><a href="#">Another link</a></li>
               </ul>
            </div>
        </div>


function f(){
      document.getElementById("cov").style.display="inline-block";
  }

  function g(){
      document.getElementById("cov").style.display="none";
  }

Fiddle

【问题讨论】:

  • 那么你的问题是什么?
  • 悬停css,并执行外部点击选项。
  • @Placeholders_in_use 你能详细说明一下吗?
  • A CSS :hover 将在鼠标退出它所连接的元素时恢复...我认为 OP 希望它仅在特定情况下保留,因此必须写入逻辑。 ..

标签: javascript jquery drop-down-menu onmouseover onmouseout


【解决方案1】:

如果我对你的理解正确,你想要这样的东西:

var list = document.getElementById("dropdown-menu");
var menu = document.getElementById("cov");

function dropdown() {
    if (list.style.display == "none") {
        list.style.display = "block";
    } else {
        list.style.display = "none";
    }
}

function f() {
    menu.style.display = "block";
}

function g() {
    if (list.style.display == "none") {
        menu.style.display = "none";
    } else if (list.style.display == "block"){
        menu.style.display = "block";
    } else {menu.style.display = "block"}
}

这是DEMO

【讨论】:

  • 很好的解决方案,这正好回答了问题!
  • 感谢@Tyblitz!我试试看。
【解决方案2】:

不要将style 设置为显示none,而是使用jquery 中的.show().hide() 来显示和隐藏特定的div

$('#cov').hide();

function f() {
    //document.getElementById("cov").style.display = "inline-block";
    $('#cov').show();
}

function g() {
    // $('#cov').hide();
   //document.getElementById("cov").style.display = "none";
}

JSFiddle to show div when mouse over

【讨论】:

  • 如果菜单没有下拉,您要求隐藏button。但是您已经在html 中找到了您的菜单。这意味着,它将永远下拉,您永远无法隐藏按钮
【解决方案3】:

试试这个fiddle,希望这就是你要找的。​​p>

你不需要onmouseout ="g()"

更新

试试这个updated fiddle

【讨论】:

  • 当我鼠标悬停时,如果没有下拉菜单,我希望按钮隐藏
  • 首先,当菜单被下拉时,按钮在点击时被隐藏,但我希望按钮在点击时保持可见,其次它只工作一次
猜你喜欢
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 1970-01-01
相关资源
最近更新 更多