首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中合并代码的更好方法是什么?

在循环中合并代码的更好方法是什么?
EN

Stack Overflow用户
提问于 2019-10-15 03:36:57
回答 2查看 101关注 0票数 1

如何在循环中合并以下代码?我的目标是在类的末尾用一个连续的数字重复类.node和.visual-content。

代码语言:javascript
复制
$s(".node1").hover(function () {
$s(".visual-content1").fadeIn("slow");
 $s(".visual-content2").fadeOut();
 $s(".visual-content3").fadeOut();
 $s(".visual-content4").fadeOut();
 $s(".visual-content5").fadeOut();
 $s(".visual-content6").fadeOut();
 $s(".visual-content7").fadeOut();
 $s(".visual-content8").fadeOut();
 $s(".visual-content9").fadeOut();
 $s(".visual-content10").fadeOut();
});

$s(".node2").hover(function () {
$s(".visual-content2").fadeIn();
 $s(".visual-content1").fadeOut();
 $s(".visual-content3").fadeOut();
 $s(".visual-content4").fadeOut();
 $s(".visual-content5").fadeOut();
 $s(".visual-content6").fadeOut();
 $s(".visual-content7").fadeOut();
 $s(".visual-content8").fadeOut();
 $s(".visual-content9").fadeOut();
 $s(".visual-content10").fadeOut();
});
EN

回答 2

Stack Overflow用户

发布于 2019-10-15 03:49:41

基本上,您要做两个循环:一个用于.nodes的外部循环,一个用于可视内容的内部循环。它的工作原理如下:

代码语言:javascript
复制
for(let i = 1; i <= 10; i++){
    $s(".node"+i).hover(function(){
    $s(".visual-content"+i).fadeIn("slow");
    for(let j = 1; j <= 10; j++){
        if(j != i){
        $s(".visual-content"+j).fadeOut();
      }
    }
  });
}

尽管注释是正确的,但您可能希望检查是否有更好的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2019-10-15 04:10:47

使用类和数据属性,忽略所有复制粘贴代码。

代码语言:javascript
复制
$(".node").on("mouseenter", function () {
  var toggles = $(this).data('toggles')
  $('.content').not(toggles).fadeOut()
  $(toggles).fadeIn()
})
代码语言:javascript
复制
.content {
  display: none;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="node" data-toggles="#content1">One</li>
  <li class="node" data-toggles="#content2">Two</li>
  <li class="node" data-toggles="#content3">Three</li>
</ul>

<div id="content1" class="content">One Content</div>
<div id="content2" class="content">Two Content</div>
<div id="content3" class="content">Three Content</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58383071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档