首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击卡片,在页面顶部显示卡片的克隆

单击卡片,在页面顶部显示卡片的克隆
EN

Stack Overflow用户
提问于 2019-09-23 16:13:54
回答 3查看 101关注 0票数 0

卡住了。不确定如何继续。

我有10张牌。当用户单击特定的卡片时,我希望克隆该卡片并将其附加到页面顶部的div中。但是,当用户单击另一张卡片时,我不希望第一张卡片消失,我希望它留下来,并将第二张卡片添加到第一张卡片旁边。此外,希望在顶部显示最多5张卡。如果用户点击第六张卡片,第一张卡片应该消失,被点击的卡片应该显示为最后一张卡片,依此类推。

代码语言:javascript
复制
$('.card').on('click', function() {
  $('.main').slideDown('fast');
  $('.card1').fadeIn(500).clone().appendTo($('.main1'));
  $('.card2').fadeIn(500).clone().appendTo($('.main2'));
  $('.card3').fadeIn(500).clone().appendTo($('.main3'));
  $('.card4').fadeIn(500).clone().appendTo($('.main4'));
  $('.card5').fadeIn(500).clone().appendTo($('.main5'));
});
代码语言:javascript
复制
.main { display: none;}

.card {
  padding: 16px;
  border: 1px solid #f00;
  background-color: white;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
  <div class="main1"></div>
  <div class="main2"></div>
  <div class="main3"></div>
  <div class="main4"></div>
  <div class="main5"></div>
</div>

<div class="container">
  <div class="card card-1">
    <p>Card 1</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-2">
    <p>Card 2</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-3">
    <p>Card 3</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-4">
    <p>Card 4</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-5">
    <p>Card 5</p>
    <p>Lorem ipsum</p>
  </div>

  <!-- 5 more cards -->
</div>

EN

回答 3

Stack Overflow用户

发布于 2019-09-23 16:26:48

您可以尝试使用detach()方法https://api.jquery.com/detach/

正如@Cid所说,将正确的类名用于jQuery选择器.card-1、.card-2等等

票数 0
EN

Stack Overflow用户

发布于 2019-09-23 16:27:13

您需要使用clone()并检查.main是否有超过5个使用children()的项目。请找到下面的代码片段

代码语言:javascript
复制
$('.card').on('click', function() {
  if ($('.main').children().length >= 5) {
    $('.main .card').first().remove();
  }
  $(this).clone().hide().appendTo($('.main')).fadeIn(500);
});
代码语言:javascript
复制
.main {
  display: flex;
}

.card {
  padding: 16px;
  border: 1px solid #f00;
  background-color: white;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">

</div>

<div class="container">
  <div class="card card-1">
    <p>Card 1</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-2">
    <p>Card 2</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-3">
    <p>Card 3</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-4">
    <p>Card 4</p>
    <p>Lorem ipsum</p>
  </div>

  <div class="card card-5">
    <p>Card 5</p>
    <p>Lorem ipsum</p>
  </div>

  <!-- 5 more cards -->
</div>

票数 0
EN

Stack Overflow用户

发布于 2019-09-23 17:30:02

您可以使用childen().first().remove来删除第一个。然后追加一个新的div。

这是我认为你想要做的一次尝试

代码语言:javascript
复制
<div class="main">
</div>

<div class="container">
    <div class="card card-1">
        <p>Card 1</p>
    </div>

    <div class="card card-2">
        <p>Card 2</p>
    </div>

    <div class="card card-3">
        <p>Card 3</p>
    </div>

    <div class="card card-4">
        <p>Card 4</p>
    </div>

    <div class="card card-5">
        <p>Card 5</p>
    </div>

</div>
代码语言:javascript
复制
$(document).ready(() => {
  const main = $('.main')
  const max = 3;
  let count = 0;
  $('.card').on('click', function () {
    main.slideDown();
    if (count < max) count++
    else main.children().first().detach()

    $(this).fadeIn(500).clone().appendTo(main);

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

https://stackoverflow.com/questions/58058199

复制
相关文章

相似问题

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