我已经在这个问题上广泛浏览了互联网,包括 stackoverflow。我的问题是我有一组“li”,当我使用 ctrl+click 手势时,我希望将多个“li”添加到数组中。我不断得到(e)未定义。我发现了这个:Detect CTRL and SHIFT key without keydown event?
但是提供的答案似乎对许多人有用,但对我却没有。每当我使用它时,即使作为脚本中的唯一项目,萤火虫也不会在控制台中响应,但我得到:“ReferenceError:e 未定义。” 我正在使用火狐。
我最大的问题是将其添加到函数中,并且作为事件触发的函数可以区分 ctrl+click 和正常单击。
有什么专业可以帮助我吗?Vanilla Javascript 首选。
本练习的重点是在单击时删除 LI,但如果按住 ctrl,我想一次删除多个。也许通过将它们存储在数组中。编辑:一些代码
<ul id = "ulItem">
<li>item1</li>
<li>item2</li>
<li>item3</li>
<li>item4</li>
</ul>
<script>
window.onload = function(){
var ulItem = document.getElementById("ulItem"); //gets UL with the "ulItem" ID.
var ulList = ulItem.getElementsByTagName("li"); //gets ulItem's "li" in an array.
///prepareLI function.///
var prepareLi = function(){
for(i = 0; i < ulList.length; i++){
ulList[i].addEventListener('click', elementClick);
}
}
//adds the same event listener to each of the "li" inside "UlList" array. Each activated by a click.
///elementClick function.///
var elementClick = function(){
ulItem.removeChild(this);
} //if this is a child of parent, UlList, remove it.
prepareLi();
}