Javascript 使下拉菜单消失
我有一个来自W3schools的代码,在这个代码中,我们点击一个按钮后会看到下拉菜单 当我们点击其他地方时,下拉菜单不会消失。 我已经上网了一点,但它似乎令人困惑,因为我是新的js 如果有人能建议我们如何让它消失,那将非常有帮助Javascript 使下拉菜单消失,javascript,dom,Javascript,Dom,我有一个来自W3schools的代码,在这个代码中,我们点击一个按钮后会看到下拉菜单 当我们点击其他地方时,下拉菜单不会消失。 我已经上网了一点,但它似乎令人困惑,因为我是新的js 如果有人能建议我们如何让它消失,那将非常有帮助 在某处添加以下代码: document.getElementById("myBtn").onblur = function() { document.getElementById("myDropdown").classList.remove("show"); };
在某处添加以下代码:
document.getElementById("myBtn").onblur = function() {
document.getElementById("myDropdown").classList.remove("show");
};
您编写的原始代码仅在单击id myBtn元素本身时才会触发添加或删除该元素上的show类:
document.getElementByIdmyBtn.onclick=函数{
document.getElementByIdmyDropdown.classList.toggleshow;
};
但是如果您单击外部,它将不起任何作用,这就是onblur事件的作用。在某个地方添加以下代码:
document.getElementById("myBtn").onblur = function() {
document.getElementById("myDropdown").classList.remove("show");
};
您编写的原始代码仅在单击id myBtn元素本身时才会触发添加或删除该元素上的show类:
document.getElementByIdmyBtn.onclick=函数{
document.getElementByIdmyDropdown.classList.toggleshow;
};
但是,如果您单击外部,它将不起任何作用,这就是onblur事件的作用。使用以下命令:
document.getElementByIdmyBtn.onblur=函数{
document.getElementByIdmyDropdown.classList.remove'show'
}; 使用以下命令:
document.getElementByIdmyBtn.onblur=函数{
document.getElementByIdmyDropdown.classList.remove'show'
};一般来说,这不起作用,试着按tab键选择下拉按钮,然后单击其他地方,你会看到下拉菜单出现。@MikaëlMayer是的,它有点坏,但它部分解决了问题,给出了切换类和重用相同函数的想法。这通常不起作用,试着点击tab选择下拉按钮,然后点击其他地方,你会看到下拉按钮出现。@MikaëlMayer是的,它有点坏,但它部分地解决了这个问题,给出了切换类和重用相同函数的想法。我们如何使用它来代替按钮?例如,给元素一个id。它的工作方式与div.u的意思相同,只是在上面的情况下更改为?是的,完全正确。诸如input、button、a、div、span等标记实际上只是为内容提供默认CSS,它们的编辑方式也有所不同,但这些只是具有相同事件的节点,可以附加这些事件。试试看。的确,这是个好主意。根据浏览器的不同,在Chrome中,而不是IE中,单击链接默认情况下不会提供焦点。因此,您需要将按钮的HTML修改为:Source:我们如何将其用于代替按钮?例如,为元素提供一个id。它的工作方式与div.u的意思相同,只是在上面的情况下更改为?是的,完全正确。诸如input、button、a、div、span等标记实际上只是为内容提供默认CSS,它们的编辑方式也有所不同,但这些只是具有相同事件的节点,可以附加这些事件。试试看。的确,这是个好主意。根据浏览器的不同,在Chrome中,而不是IE中,单击链接默认情况下不会提供焦点。因此,您需要将按钮的HTML修改为:Source: