当前位置: 首页 > 知识库问答 >
问题:

如果另一个列表项有一个特定的类,我如何添加一个列表项?

杨晓博
2023-03-14

我有一个活动选项卡的自动播放选项卡类current,这意味着当选项卡是活动的时,列表项有一个名为current的类。

现在我要向第一个子

  • 添加不同的类

    null

    $(document).ready(function(jQuery) {
    
      if ($('li.stp-1').hasClass('current')) {
        $('.li-animation').addClass('hover-1');
      } else {
        $('.li-animation').removeClass('hover-1');
      }
    
      if ($('li.stp-2').hasClass('current')) {
        $('.li-animation').addClass('hover-2');
      } else {
        $('.li-animation').removeClass('hover-2');
      }
    });
    
    $(document).ready(function(jQuery) {
      $(function () {
        var boxes = $(".HWBlock"),
          tabs = $(".tablinks");
    
        function showTabContent() {
          return boxes.queue("tabs", $.map(boxes, function (el, curr) {
            return function (next) {
              boxes.hide() // hide `.box` elements
                .add(tabs) // add `.tabs` to current selector
                .removeClass("current") // remove `.current` class
                .filter(el) // current `.box` element
                .fadeIn(150) // fade in current `.box` element
                .add(tabs.eq(curr)) // add `.tabs` at index `curr` to selector
                .addClass("current") // add `current` `className` to selector
                .end() // end current selection at `.boxes` selector
                .delay(5000, "content") // set, delay `"content"` queue 5000ms
                .dequeue("content") // dequeue `"content"` queue
                .promise("content") // at completed promise of `"content"` queue
                .then(next) // call next function in `"tabs"` queue
            }
          }))
            .dequeue("tabs") // dequeue `"tabs"` queue
            .promise("tabs") // at completed promise of `"tabs"` queue
            .then(showTabContent); // call `showTabContent` recursively
        }
        showTabContent();
      });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <ul class="d-md-flex wow fadeInDown">
      <li class="li-animation"></li>
      <li class="tablinks stp-1">stp-1</li>
      <li class="tablinks stp-2">stp-2</li>
      <li class="tablinks stp-3">stp-3</li>
    
    </ul>
    <div class="how-works-text wow fadeInUp">
      <div class="HWBlock step-1" id="step-1">
        <p>test</p>
      </div>
      <div class="HWBlock step-2" id="step-2">
        <p>test 2</p>
      </div>
      <div class="HWBlock step-3" id="step-3">
        <p>test 3</p>
      </div>
    </div>

    null

    共有1个答案

    姚向晨
    2023-03-14

    根据你在你的问题和评论中给我们的非常有限的信息,这里有一个关于什么可能起作用的绝对猜测。这完全是基于我对jQuery的效果队列功能的了解,这是有限的。

    我还冒昧地使用toggleClass来减少代码的长度,在带有“li-animation”类的元素中添加或删除“hover-*”类。

    我还为正在添加的类添加了一些简单的CSS,这样无论代码工作与否,都更容易可视化。

    null

    function addHoverClasses() {
      $('.li-animation').toggleClass('hover-1', $('li.stp-1').hasClass('current'));
      $('.li-animation').toggleClass('hover-2', $('li.stp-2').hasClass('current'));
      $('.li-animation').toggleClass('hover-3', $('li.stp-3').hasClass('current'));
    }
    
    $(document).ready(function(jQuery) {
      $(function () {
        var boxes = $(".HWBlock"),
          tabs = $(".tablinks");
    
        function showTabContent() {
          return boxes.queue("tabs", $.map(boxes, function (el, curr) {
            return function (next) {
              boxes.hide() // hide `.box` elements
                .add(tabs) // add `.tabs` to current selector
                .removeClass("current") // remove `.current` class
                .filter(el) // current `.box` element
                .fadeIn(150) // fade in current `.box` element
                .add(tabs.eq(curr)) // add `.tabs` at index `curr` to selector
                .addClass("current") // add `current` `className` to selector
                .queue(function (next) {
                  addHoverClasses();
                  next();
                })
                .end() // end current selection at `.boxes` selector
                .delay(5000, "content") // set, delay `"content"` queue 5000ms
                .dequeue("content") // dequeue `"content"` queue
                .promise("content") // at completed promise of `"content"` queue
                .then(next) // call next function in `"tabs"` queue
            }
          }))
            .dequeue("tabs") // dequeue `"tabs"` queue
            .promise("tabs") // at completed promise of `"tabs"` queue
            .then(showTabContent); // call `showTabContent` recursively
        }
        showTabContent();
      });
    });
    .current { border: 1px solid green; }
    .hover-1 { background-color: blue; }
    .hover-2 { background-color: red; }
    .hover-3 { background-color: green; }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <ul class="d-md-flex wow fadeInDown">
      <li class="li-animation"></li>
      <li class="tablinks stp-1">stp-1</li>
      <li class="tablinks stp-2">stp-2</li>
      <li class="tablinks stp-3">stp-3</li>
    
    </ul>
    <div class="how-works-text wow fadeInUp">
      <div class="HWBlock step-1" id="step-1">
        <p>test</p>
      </div>
      <div class="HWBlock step-2" id="step-2">
        <p>test 2</p>
      </div>
      <div class="HWBlock step-3" id="step-3">
        <p>test 3</p>
      </div>
    </div>
     类似资料:
    • 我正在从远程数据库读取一组行,从本地数据库读取一组类似的行,然后使用RemoveAll删除本地已经存在的远程行。。。 但这对我来说似乎不对。当我真正需要做的只是检查是否存在匹配项时,我认为我不应该计算事物。我尝试了和的各种用法,但得到了废话。我不能使用(如这里建议的),因为列表元素不是同一类型。 有更好的方法吗?

    • 我试图迭代一个ArrayList并使用规则中的jboss drools添加到另一个ArrayList。 我的规则如下。 用口水怎么做?

    • 问题内容: 我有两个清单说 现在,我想找出List2中是否存在List1的所有元素。在这种情况下,就全部存在。我不能使用子集函数,因为我可以在列表中重复元素。我可以使用for循环来计算List1中每个项目的出现次数,并查看它是否小于或等于List2中的出现次数。有一个更好的方法吗? 谢谢。 问题答案: 当出现次数无关紧要时,您仍可以通过动态创建集合来使用子集功能: 如果需要检查每个元素在第二个列表

    • 问题内容: 如何测试一个列表是否包含另一个列表(即它是一个连续的子序列)。假设有一个名为contains的函数: 编辑: 问题答案: 这是我的版本: 正如安德鲁·贾菲(Andrew Jaffe)在他的评论中指出的那样,它返回一个元组(start,end + 1),因为我认为这更像pythonic。它不对任何子列表进行切片,因此应该相当有效。 新手感兴趣的一点是,它使用了for语句上的else子句-

    • 我是一名Java程序员初学者。我试图在类交通中访问类车中的两个列表,这样我就可以执行while循环,循环直到主类中的列表为空 这就是我现在掌握的代码,我试着从普通车上扩展流量,但没有成功,我被卡住了。我该怎么解决这个问题?