Javascript 鼠标输出上的下拉菜单应保持可见

Javascript 鼠标输出上的下拉菜单应保持可见,javascript,jquery,drop-down-menu,onmouseover,onmouseout,Javascript,Jquery,Drop Down Menu,Onmouseover,Onmouseout,当鼠标在div内移动时,带下拉菜单的按钮应该是可见的,这很好,但问题是当我将鼠标移出该div时,如果菜单被下拉,我希望按钮和下拉菜单保持可见,但如果菜单没有被下拉,按钮应该隐藏。我如何实现这一点?(在给定的代码中,无论发生什么情况,按钮和下拉菜单都会隐藏在mouseout上) 行动 函数f(){ document.getElementById(“cov”).style.display=“内联块”; } 函数g(){ document.getElementById(“cov”).st

当鼠标在div内移动时,带下拉菜单的按钮应该是可见的,这很好,但问题是当我将鼠标移出该div时,如果菜单被下拉,我希望按钮和下拉菜单保持可见,但如果菜单没有被下拉,按钮应该隐藏。我如何实现这一点?(在给定的代码中,无论发生什么情况,按钮和下拉菜单都会隐藏在mouseout上)


行动
函数f(){ document.getElementById(“cov”).style.display=“内联块”; } 函数g(){ document.getElementById(“cov”).style.display=“无”; }

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

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

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

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

试试这个,希望这就是你想要的

您不需要
onmouseout=“g()”

更新


试试这个

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

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"}
}

这是一个

那么你的问题是什么?用鼠标悬停,然后做一个外部点击选项。@placeholder\u in\u use你能详细说明一下吗?一个css
:鼠标退出它所连接的元素时,鼠标悬停将恢复…我想OP希望它只在特定的情况下保持,所以必须在…当我离开时写入一个逻辑seout如果菜单没有下拉,我希望按钮隐藏在这里首先,当菜单下拉时,按钮在单击时隐藏,但我希望按钮在单击时保持可见,其次,它只工作一次如果菜单没有下拉,您要求隐藏
按钮
。但您已经有了菜单
html
。这意味着,它将永远下拉,您永远无法隐藏buttonGood解决方案,这正好回答了问题!谢谢@Tyblitz!我尝试了。
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"}
}