Javascript 重新选择不工作的李
我有一张lis的清单。如果选择了某个li,则其背景色将为橙色,而之前的“选定”li的背景色将被删除 问题是,如果选择同一个li 3次,什么也不会发生。第一次,它的背景颜色是橙色。第二次,背景色将被删除。第三次,背景颜色应该是橙色,但不是。什么也没发生 如何使橙色在第三次选中时重新出现,并在每次选中后都具有“正常”行为 严格使用 var parentElem=document.getElementById'wrapper', 单元格=parentElem.firstElementChild.children, previousColorNameSelection=parentElem.children[0]; parentElem.firstElementChild.addEventListener'click',函数E{ var电流目标; 如果e.target.tagName=='LI'{ currentTarget=e.target.firstElementChild.firstElementChild; }否则如果hasClasse.target为'namesInnerWrapper'{ currentTarget=e.target.firstElementChild; }否则如果hasClasse.target为'namesName'{ currentTarget=e.target; } console.logcurrentTarget.innerHTML,currentTarget; currentTarget.parentElement.parentElement.style.backgroundColor='orange'; previousColorNameSelection.parentElement.parentElement.style.backgroundColor=; previousColorNameSelection=currentTarget; }; 函数HASSCLASSELE,cls{ 返回ele.className.matchnew RegExp'\\s |^'+cls+'\\s |$'; } 包装纸{ 宽度:300px; } 李:第N个孩子{ 背景:RGBA100200255,0.1; } 李{ 列表样式类型:无; } 保险商实验室{ 位置:相对位置; 高度:350px; } 平衡 预先知道 巴伦支 不足 非物质化 非贷方 无校正Javascript 重新选择不工作的李,javascript,css,Javascript,Css,我有一张lis的清单。如果选择了某个li,则其背景色将为橙色,而之前的“选定”li的背景色将被删除 问题是,如果选择同一个li 3次,什么也不会发生。第一次,它的背景颜色是橙色。第二次,背景色将被删除。第三次,背景颜色应该是橙色,但不是。什么也没发生 如何使橙色在第三次选中时重新出现,并在每次选中后都具有“正常”行为 严格使用 var parentElem=document.getElementById'wrapper', 单元格=parentElem.firstElementChild.ch
我将用jQuery为您提供一个答案,因为这样更简单 让我们首先使用一个类来指定背景色。更容易相处
li.active{
background-color: orange;
}
然后让我们像这样使用jQuery:
$function{
$'li'。单击,函数{
//保存是否已选择要单击的li
var alreadySelected=$this.hasClass'active'?true:false;
//从所有列表项中删除活动类
$'li'。删除类'active';
//如果尚未选择,请立即选择
如果!已选择$this.addClass'active';
};
};
previousColorNameSelection=currentTarget–问题是,每次单击都会执行此操作,无论它是激活还是禁用LI元素。因此,当LI处于活动状态时,您可以将其设置为previousColorNameSelection,然后单击下一步,将元素的背景设置为橙色,然后立即将其删除,因为previousColorNameSelection已经指向同一LI元素。啊。那我该怎么解决呢?谢谢!你可以发布一个JavaScript答案吗。另外,我没有将事件添加到lis的原因是,我将有大约150个lis,因此我认为将事件添加到ul更有效