Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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_Dom_Events - Fatal编程技术网

如何在达到特定值后停止JavaScript事件

如何在达到特定值后停止JavaScript事件,javascript,dom,events,Javascript,Dom,Events,我有一个简单的动态计算模板。如您所见,模板以a+b开头。当用户单击“添加”按钮时,将根据模板的最后一个元素显示两种类型的下拉列表。如果计算以值结束,则将显示“操作”下拉列表,反之亦然。这里的问题是,当模板作为完整的数学练习完成时,下拉列表应该停止显示。与a+b+c类似,a+b+c+d当最后一个元素是值而不是操作时,这里的下拉列表应该消失 document.querySelector('.container').addEventListener('click',e=>{ const countI

我有一个简单的动态计算模板。如您所见,模板以a+b开头。当用户单击“添加”按钮时,将根据模板的最后一个元素显示两种类型的下拉列表。如果计算以值结束,则将显示“操作”下拉列表,反之亦然。这里的问题是,当模板作为完整的数学练习完成时,下拉列表应该停止显示。与a+b+c类似,a+b+c+d当最后一个元素是值而不是操作时,这里的下拉列表应该消失

document.querySelector('.container').addEventListener('click',e=>{
const countItem=document.querySelector('.lists').childElementCount
如果(countItem%2==0){
下拉列表('dropdown-value')
}否则{
下拉(“下拉操作”)
}
});
document.queryselectoral('.menu list').forEach(list=>list.addEventListener('click',e=>{
const span=document.createElement('span');
span.textContent=e.target.textContent
document.querySelector('.lists').appendChild(span)
document.querySelector('.dropdown value').style.display='none'
document.querySelector('.dropdown operation')。style.display='none'
}));
下拉菜单=(元素)=>{
document.querySelector(`.${element}`).style.display='block'
}
.container{
显示器:flex;
字体大小:20px;
边缘顶端:2rem;
左边距:2em;
}
a{
左边距:1 em;
}
保险商实验室{
保证金:0;
填充:0;
}
.列表跨度{
填充:1rem;
背景#f1f1;
右边距:.2em;
}
.添加{
位置:相对位置;
背景:290fff;
颜色:#fff;
填充物:5px;
光标:指针;
}
.下拉操作,
.下拉值{
宽度:100%;
位置:绝对位置;
左:0;
背景#f1f1;
}
.下拉列表值li,
.下拉操作李{
显示:块;
颜色:#000;
光标:指针;
填充物:5px;
边框底部:1px实心#000;
文本对齐:居中;
}

A.
+
B
添加
  • a
  • b
  • c
  • d
  • *
  • /
  • +
  • -
这应该行得通

监听('.open');
监听(“.下拉操作”);
函数监听(elem){
document.querySelector(elem).addEventListener('click',e=>{
const countItem=document.querySelector('.lists').childElementCount
如果(countItem%2==0){
下拉列表('dropdown-value')
}否则{
下拉(“下拉操作”)
}
});
}
document.queryselectoral('.menu list').forEach(list=>list.addEventListener('click',e=>{
const span=document.createElement('span');
span.textContent=e.target.textContent
document.querySelector('.lists').appendChild(span)
document.querySelector('.dropdown value').style.display='none'
document.querySelector('.dropdown operation')。style.display='none'
}));
常量下拉列表=(元素)=>{
document.querySelector(`.${element}`).style.display='block'
}
.container{
显示器:flex;
字体大小:20px;
边缘顶端:2rem;
左边距:2em;
}
a{
左边距:1 em;
}
保险商实验室{
保证金:0;
填充:0;
}
.列表跨度{
填充:1rem;
背景#f1f1;
右边距:.2em;
}
.添加{
位置:相对位置;
背景:290fff;
颜色:#fff;
填充物:5px;
光标:指针;
}
.下拉操作,
.下拉值{
宽度:100%;
位置:绝对位置;
左:0;
背景#f1f1;
}
.下拉列表值li,
.下拉操作李{
显示:块;
颜色:#000;
光标:指针;
填充物:5px;
边框底部:1px实心#000;
文本对齐:居中;
}

A.
+
B
添加
  • a
  • b
  • c
  • d
  • *
  • /
  • +
  • -

我不确定我是否明白你所说的,但是你可以将if/else改为
if(countItem==2){dropdown('dropdown-value');}如果(countItem==3){dropdown('dropdown-operation');}
那么,因为
countItem
在下一次单击时将是4,所以什么都不会发生。你得到了我想要的。我想这样做,但练习可能会继续,这就是为什么应该有某种逻辑来停止显示下拉菜单我的意思是你可以
返回