减少JavaScript代码量

减少JavaScript代码量,javascript,javascript-events,Javascript,Javascript Events,在本例中,如何减少JavaScript代码的数量?我想要干代码 我想知道我需要做些什么,以避免在EventListeners中重复我自己 请在下面找到代码。首先是JavaScript,然后是CSS,然后是HTML。 谢谢你的帮助 var firstLi=document.querySelectorone; var secondLi=document.queryselectortw; var thirdLi=document.queryselectortree; firstLi.addEvent

在本例中,如何减少JavaScript代码的数量?我想要干代码

我想知道我需要做些什么,以避免在EventListeners中重复我自己

请在下面找到代码。首先是JavaScript,然后是CSS,然后是HTML。 谢谢你的帮助

var firstLi=document.querySelectorone; var secondLi=document.queryselectortw; var thirdLi=document.queryselectortree; firstLi.addEventListener单击,完成; secondLi.addEventListener单击,完成; thirdLi.addEventListenerclick,完成; firstLi.addEventListenermouseover,悬停; secondLi.addEventListenermouseover,悬停; 第三,添加文本ListenerMouseover,悬停; firstLi.addEventListenermouseout,悬停; 第二个li.addEventListenermouseout,悬停; 第三,添加了文本列表mouseout,hoverOut; 功能完成{ this.classList.togglegreyout; } 函数悬停{ this.classList.addhover; } 函数悬停{ this.classList.removehave; } .悬停{ 颜色:绿色; } 格雷厄特先生{ 颜色:灰色; 文字装饰:线条贯通; } 要做的事 一 二 三 和是对多个值应用相同操作的常用方法

将元素放入数组中,并在其上迭代:

var elements = [firstLi, /*...*/];

elements.forEach(function(element) {
   element.addEventListener(/*...*/);
   // ...
});
但如评论中所述,使用:hover CSS选择器,无需任何JavaScript即可实现悬停效果:

li:hover {
  color: green;
}
和是对多个值应用相同操作的常用方法

将元素放入数组中,并在其上迭代:

var elements = [firstLi, /*...*/];

elements.forEach(function(element) {
   element.addEventListener(/*...*/);
   // ...
});
但如评论中所述,使用:hover CSS选择器,无需任何JavaScript即可实现悬停效果:

li:hover {
  color: green;
}

您可以使用事件委派并在列表中添加一个事件侦听器:

var list=document.querySelectorul; list.addEventListener单击,完成; 功能受赠人{ 如果e.target.tagName=='LI'{ e、 target.classList.togglegreyout; } } 李:悬停{ 颜色:绿色; } 格雷厄特先生{ 颜色:灰色; 文字装饰:线条贯通; } 要做的事 一 二 三
您可以使用事件委派并在列表中添加一个事件侦听器:

var list=document.querySelectorul; list.addEventListener单击,完成; 功能受赠人{ 如果e.target.tagName=='LI'{ e、 target.classList.togglegreyout; } } 李:悬停{ 颜色:绿色; } 格雷厄特先生{ 颜色:灰色; 文字装饰:线条贯通; } 要做的事 一 二 三
你知道你可以通过使用CSS:悬停选择器得到相同的结果,对吗?对于点击处理程序,如果一组可点击的项目随着时间的推移而改变,并且你不想在每次插入/删除一个元素时管理事件侦听器,那么你可能会认为是有用的。对点击处理程序来说,如果一组可点击的项目随时间而变化,并且每次插入/删除元素时都不想管理事件侦听器,那么THX可能是有用的,而且是的,我知道只有使用CSS才是可能的。这只是一些JavaScript实践。您可以使用循环,但在本例中,使用委托事件侦听器似乎更有意义。这是一个很好的通用建议,虽然可以减少重复代码的数量。Thx,是的,我知道这仅仅通过使用CSS是可能的。这只是一些JavaScript实践。您可以使用循环,但在本例中,使用委托事件侦听器似乎更有意义。这是一个很好的通用建议,可以减少重复代码的数量。使用它,您不需要为li元素提供ID,除非您以后需要它们来做其他事情。使用它,您也不需要为li元素提供ID,除非您以后需要它们来做其他事情。