jQuery:每次点击只显示一个元素

标签 jquery css

我有一个小问题,也许你可以帮我解决? 我有 HTML div 以及显示和隐藏功能。

我只想在每次点击时显示一 (1) 个 div,而不是全部。 我制作了一个 jquery 代码,但它显示了所有 div。

需要建议。

https://jsfiddle.net/pfcglen/pLfbwve5/2/

jQuery(document).ready(function() {

    var toggleContent = jQuery('.insideContent');
    toggleContent.addClass('hidden');
    var thisElemnt = $(this);
    jQuery('.button').on('click', function() {
        thisElemnt.find('.insideContent').removeClass('hidden').addClass('show');
    });


});

jQuery(document).ready(function() {

  var toggleContent = jQuery('.insideContent');
  toggleContent.addClass('hidden');
  var thisElemnt = $(this);
  jQuery('.button').on('click', function() {
    thisElemnt.find('.insideContent').removeClass('hidden').addClass('show');
  });


});
.hidden {
  display: none !important;
}
.show {
  display: block !important;
}
.list {
  direction: inherit;
  display: flex;
  width: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="list">
  <div class="col-lg-2 workImage">
    <div class="itemTitle">
      <h2 class="page-header  text-center">Item</h2>
      <button class="button">Open Project</button>
    </div>
    <div class="insideContent">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </div>
  <div class="col-lg-2 workImage">
    <div class="itemTitle">
      <h2 class="page-header  text-center">Item</h2>
      <button class="button">Open Project</button>
    </div>
    <div class="insideContent">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </div>
  <div class="col-lg-2 workImage">
    <div class="itemTitle">
      <h2 class="page-header  text-center">Item</h2>
      <button class="button">Open Project</button>
    </div>
    <div class="insideContent">
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    </div>
  </div>
</div>

最佳答案

jQuery(document).ready(function() {

    var toggleContent = jQuery('.insideContent');
    toggleContent.addClass('hidden');
    var thisElemnt = $(this);
    jQuery('.button').on('click', function() {
        $(this).closest('.itemTitle').next('.insideContent').toggleClass('hidden show');//use $(this) to apply only to click elemt
    });


});

使用.closest()得到最近的父 .itemtitle 然后 使用 .next()然后获取目标 div 使用 .toggleClass()显示和隐藏目标 div

DEMO

关于jQuery:每次点击只显示一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041576/

相关文章:

html - 更新记录时如何动态更新行背景颜色?

javascript - 页面加载后动态加载谷歌字体

javascript - Jquery Validate resetForm 不清除错误信息

javascript - 区分元刷新和页面卸载事件上的其他刷新

javascript - Jquery 通过单击复选框仅更改一段

javascript - 使用 PHP 和 Javascript 将彩信插入 MySQL 数据库

javascript - 单击阅读更多按钮时隐藏另一页的 ID

javascript - 如何使 Priority 列出现在 Chrome Devtools Network 选项卡中

html - 寻找一种干净的方法来处理多个内联 block 元素的 IE7 兼容性

javascript - 背景更改仅适用于 chrome + $.preload 不起作用