Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误行为?打开:使用鼠标悬停~_Javascript_Html_Css - Fatal编程技术网

Javascript 错误行为?打开:使用鼠标悬停~

Javascript 错误行为?打开:使用鼠标悬停~,javascript,html,css,Javascript,Html,Css,我已经创建了一个自定义下拉列表,当我将鼠标悬停在p标记(标题)和第一个标签(选项)上时,我会得到预期的行为,但当我尝试将光标移动到下一个标签时,整个部分将关闭;为什么不保持悬停?(如果我以非常慢的速度逐像素移动鼠标,我会得到预期的行为) Javascript、CSS和HTML constddlcontainers=document.getElementsByClassName('ddlContainer'); for(让ddlContainer中的ddlContainer){ const dd

我已经创建了一个自定义下拉列表,当我将鼠标悬停在p标记(标题)和第一个标签(选项)上时,我会得到预期的行为,但当我尝试将光标移动到下一个标签时,整个部分将关闭;为什么不保持悬停?(如果我以非常慢的速度逐像素移动鼠标,我会得到预期的行为)

Javascript、CSS和HTML

constddlcontainers=document.getElementsByClassName('ddlContainer');
for(让ddlContainer中的ddlContainer){
const ddlButton=ddlContainer.children[1];//ddlContainer.getElementsByTagName('button')[0];
//const ddlSelect=ddlContainer.children[2];//ddlContainer.getElementsByTagName('div')[0];
const ddlpoptions=ddlContainer.children[2].getElementsByTagName('label');//ddlSelect.getElementsByTagName('label');//document.querySelectorAll('test>label');
const selectLabel=ddlButton.children[0];
ddlButton.addEventListener('click',函数(e){
e、 预防默认值();
e、 target.nextElementSibling.classList.toggle('ddlHidden');
})
函数切换隐藏(e){
e、 target.parentNode.classList.toggle('ddlHidden');
}
for(让选项中的选项){
option.addEventListener('click',函数(e){
标题(e);
})
}
功能名称(e){
选择label.innerText=e.target.innerText
切换隐藏(e);
}
}
.ddlContainer{
位置:相对位置;
宽度:100%;
字号:1em;
}
.ddl按钮{
显示器:flex;
证明内容:之间的空间;
填充:0.3em 0.6em 0.3em 0.8em;
宽度:100%;
背景:#fff;
}
.阿罗{
边框:纯黑;
字号:0.9em;
边框宽度:0 2px 2px 0;
填充:0.2米;
边缘:0.2米;
身高:0;
宽度:0;
自对准:居中;
变换:旋转(45度)
}
.ddl{
位置:绝对位置;
z指数:1;
显示器:flex;
宽度:100%;
弯曲方向:立柱;
边框:2px实心#00000088;
背景:#eee;
}
.ddl输入[type=“radio”]{
显示:无;
}
.ddl>*{
显示器:flex;
证明内容:之间的空间;
保证金:0;
填充:0.4em 1em;
z指数:2;
}
.ddl>标签{
字号:0.9em;
背景:#fff;
光标:指针;
/*隐藏标签*/
身高:0;
填充:0;
可见性:隐藏;
过渡:颜色0.1s缓变,填充缓变0.1s;
颜色:#ffffffff;
}
.ddl>p:hover~label{/*显示所有标签*/
高度:自动;
填充:0.5em 1.5em;
颜色:#000000;
能见度:可见;
}
.ddl>p:hover~p~label{/*删除以下所有标签集的显示*/
身高:0;
填充:0;
颜色:#ffffffff;
可见性:隐藏;
}
.ddl>label:hover~label{/*Kepps显示以下所有标签*/
高度:自动;
填充:0.5em 1.5em;
颜色:#000000;
能见度:可见;
}
.ddl>label:hover~p~label{/*删除以下所有标签集的显示*/
身高:0;
填充:0;
颜色:#ffffffff;
可见性:隐藏;
}
.ddl>标签:悬停{/*在离开p标签时保持当前标签的显示*/
高度:自动;
填充:0.5em 1.5em;
颜色:#000000;
能见度:可见;
}
.ddl>标签:悬停{
背景#d3d9f0;
}
.隐藏{
显示:无;
}

选项清单1:
-选择选项-
项目类型1

项目1.1 项目1.2 项目1.3 项目1.3 项目类型2

项目2.1 项目2.2 项目类型3

项目3.1 项目3.2 项目3.3
选项清单2: -选择选项- 项目类型1

项目1.1 项目1.2 项目1.3 项目1.3 项目类型2

项目2.1 项目2.2 项目类型3

项目3.1 项目3.2 项目3.3







由于您不再将鼠标悬停在标签上,因此不会对其进行维护。您现在将鼠标悬停在另一个标签上。如果您使用:将鼠标悬停在一个共同的祖先元素上,而不是尝试执行以下所有操作,那么这将更加容易。(既然您已经在使用JavaScript,那么就没有“不能更改HTML”的借口——您可以更改DOM。)使用@:将给Razor带来更好的自由度