首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从一个div移除类,然后单击一个div添加到另一个div。

从一个div移除类,然后单击一个div添加到另一个div。
EN

Stack Overflow用户
提问于 2015-01-09 13:47:11
回答 3查看 2K关注 0票数 0

我使用JQuery使小图像在点击时变得更大。

当单击包含小图像的div时,JQuery分配一个类"figure_full_demo“使其展开--当单击大型图像容器时,类将被移除。

即使在页面包含多个图像时,这也能很好地工作。如果在单击下一个小容器之前未单击大型图像容器,则会出现问题--然后我必须双击才能使其展开。

如何从大型图像容器中删除类“figure_full_demo”,并在一次单击中将其添加到小容器中?希望我的问题是清楚的贴出一些代码:

代码语言:javascript
复制
$('.figure').click(function() {		
  if ($('#wrapper').css('position') == 'relative'){
    $('#wrapper').css({'position':'static'});
    $('.figure').removeClass('figure_full_demo'); 
    $(this).addClass('figure_full_demo'); 
  }   
  else { 
    $('#wrapper').css({'position':'relative'});
    $('.figure').removeClass('figure_full_demo'); 
  } 
});
代码语言:javascript
复制
#wrapper   { 
  position: relative;
  width: 100%;
  max-width: 690px; 
  padding: 30px 12px 60px 12px; 
  margin: 0 auto;
  box-sizing: border-box;
  border: 2px solid green;
}
.figure {
  border: 1px solid red; 
  cursor: pointer;
}
.figure_full_demo  {
  position: absolute;
  z-index: 5000;
  left: 5%;
  right: 5%;
  width: 90%;
  background: rgba(0,0,0,0.5);
}  
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="wrapper">
  <div class="figure"> 
    <img src="http://placehold.it/400x100/" alt="Pic 1">
  </div>

  <div class="figure"> 
    <img src="http://placehold.it/400x100/" alt="Pic 2">       
  </div>
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-09 17:11:28

我会检查用户是按下了大容器还是按下了小图像:

代码语言:javascript
复制
$(this).hasClass('figure_full_demo')

而不是检查是否有大型容器处于活动状态。

代码语言:javascript
复制
$('#wrapper').css('position') == 'relative'

类似于:

代码语言:javascript
复制
$('.figure').click(function() {     
  if ($(this).hasClass('figure_full_demo')){
    /* Large container clicked */      
    $('#wrapper').css({'position':'relative'});
    $('.figure').removeClass('figure_full_demo'); 
  } else {
    /* Small container clicked */      
    $('.figure').removeClass('figure_full_demo'); 
    $('#wrapper').css({'position':'static'});
    $(this).addClass('figure_full_demo'); 
  }
});

JSFiddle演示

代码语言:javascript
复制
$(document).ready(
  function() {
    $('.figure').click(function() {		
      if ($(this).hasClass('figure_full_demo')){
        /* Large container clicked */      
        $('#wrapper').css({'position':'relative'});
        $('.figure').removeClass('figure_full_demo'); 
      } else {
        /* Small container clicked */      
        $('.figure').removeClass('figure_full_demo'); 
        $('#wrapper').css({'position':'static'});
        $(this).addClass('figure_full_demo'); 
      }
    });
  }
);
代码语言:javascript
复制
#wrapper   { 
  position: relative;
  width: 100%;
  max-width: 690px; 
  padding: 30px 12px 60px 12px; 
  margin: 0 auto;
  box-sizing: border-box;
  border: 2px solid green;
}
.figure {
  border: 1px solid red; 
  cursor: pointer;
}
.figure_full_demo  {
  position: absolute;
  z-index: 5000;
  left: 5%;
  right: 5%;
  width: 90%;
  background: rgba(0,0,0,0.5);
}  
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div id="wrapper">
  <div class="figure"> 
    <img src="http://placehold.it/400x100/&text=Pic+1" alt="Pic 1">
  </div>

  <div class="figure"> 
    <img src="http://placehold.it/400x100/&text=Pic+2" alt="Pic 2">       
  </div>
      
  <div class="figure"> 
    <img src="http://placehold.it/400x100/&text=Pic+3" alt="Pic 3">       
  </div>
      
  <div class="figure"> 
    <img src="http://placehold.it/400x100/&text=Pic+4" alt="Pic 4">       
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2015-01-09 13:50:59

您可以使用.not(this)函数来从每个.figure元素中删除类(除单击的元素外)。

代码语言:javascript
复制
$('.figure').click(function() {     
    $('.figure').not(this).removeClass('figure_full_demo');
    if ($('#wrapper').css('position') == 'relative'){
            $('#wrapper').css({'position':'static'});
            $('.figure').removeClass('figure_full_demo'); 
            $(this).addClass('figure_full_demo'); 
    }   
    else { 
        $('#wrapper').css({'position':'relative'});
        $('.figure').removeClass('figure_full_demo'); 
    } 
});
票数 0
EN

Stack Overflow用户

发布于 2015-01-09 17:33:07

http://jsfiddle.net/h9vc3haw/3/

代码语言:javascript
复制
$('.figure').on("click", function(){        
    $('.figure').not(this).removeClass('figure_full_demo'); 
    $(this).toggleClass('figure_full_demo');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27862000

复制
相关文章

相似问题

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