mouseout下拉菜单应保持可见

时间:2014-05-29 07:32:01

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

当鼠标在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

3 个答案:

答案 0 :(得分:1)

不要将style设置为显示none,而是使用.show()中的.hide()jquery来显示和隐藏特定的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

答案 1 :(得分: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

答案 2 :(得分:0)

试试这个fiddle,希望这就是你要找的东西。

您不需要onmouseout ="g()"

<强>更新

试试这个updated fiddle