简体   繁体   English

Jquery - 我只想为单击按钮的元素切换 class。 目前它为所有具有相同 class 的元素切换

[英]Jquery - I want to only toggle class for the element whose button is click. Currently it toggles for all elements with same class

I am trying to open/close elements by toggling class on click event.I am using Jquery.我正在尝试通过在单击事件上切换 class 来打开/关闭元素。我正在使用 Jquery。 But on clicking all elements get opened (which have same class) however only want the one which is clicked to be opened.但是在单击时,所有元素都会打开(具有相同的类),但只希望打开被单击的元素。 Here's the link to the Demo Page: http://www.lindsaysteele.com/demo-page-1 HTML Structure:这是演示页面的链接: http://www.lindsaysteele.com/demo-page-1 HTML 结构:

<div class="sqs-block image-block sqs-block-image sqs-text-ready" data-block-type="5" id="block-yui_3_17_2_1_1660582617675_7984">
  <div class="sqs-block-content" id="yui_3_17_2_1_1660757592153_72">
    <figure
      class="sqs-block-image-figure image-block-outer-wrapper image-block-v2 design-layout-card combination-animation-none individual-animation-none individual-text-animation-none image-position-left image-linked sqs-narrow-width sqs-text-ready menu-plugin unactive"
      data-scrolled=""
      data-test="image-block-v2-outer-wrapper"
      id="yui_3_17_2_1_1660757592153_71"
    >
      <div class="intrinsic" id="yui_3_17_2_1_1660757592153_70">
        <div class="image-inset" data-animation-role="image" data-description="" id="yui_3_17_2_1_1660757592153_69">
          <div class="sqs-image-shape-container-element content-fit" style="position: relative; overflow: hidden;" id="yui_3_17_2_1_1660757592153_68">
            <noscript><img class="sqs-image-min-height" src="https://images.squarespace-cdn.com/content/v1/52437378e4b02cd2cb2b1250/991c3f4c-e82c-45b0-9216-bc4429b1e9bb/Dumplings.jpg" alt="" loading="lazy" /></noscript>
            <img
              class="sqs-image-min-height loaded"
              data-src="https://images.squarespace-cdn.com/content/v1/52437378e4b02cd2cb2b1250/991c3f4c-e82c-45b0-9216-bc4429b1e9bb/Dumplings.jpg"
              data-image="https://images.squarespace-cdn.com/content/v1/52437378e4b02cd2cb2b1250/991c3f4c-e82c-45b0-9216-bc4429b1e9bb/Dumplings.jpg"
              data-image-dimensions="900x900"
              data-image-focal-point="0.5,0.5"
              alt=""
              loading="lazy"
              data-parent-ratio="333.0"
              style="left: 166px; top: 0px; width: 1px; height: 1px; position: absolute;"
              data-image-resolution="500w"
              src="https://images.squarespace-cdn.com/content/v1/52437378e4b02cd2cb2b1250/991c3f4c-e82c-45b0-9216-bc4429b1e9bb/Dumplings.jpg?format=500w"
            />
            <div class="image-overlay" style="overflow: hidden;"></div>
          </div>
        </div>
      </div>

      <figcaption class="image-card-wrapper" data-width-ratio="">
        <div class="image-card sqs-dynamic-text-container">
          <div class="image-title-wrapper">
            <div class="image-title sqs-dynamic-text" data-width-percentage="23.3" style="font-size: max(0.75rem, 23.3%);">
              <p class="" style="white-space: pre-wrap;"><strong>Johnny Walker Black Dumplings</strong></p>
            </div>
          </div>

          <div class="image-subtitle-wrapper">
            <div class="image-subtitle sqs-dynamic-text" data-width-percentage="23.3" style="font-size: max(0.75rem, 23.3%);">
              <p class="min-font-set" style="white-space: pre-wrap;">Local ground pork, Johnnie Walker Black Whiskey, green onion, sesame oil, sriracha aioli, sweet soy handmade by @TheRealDumplingKing.</p>
            </div>
          </div>

          <div class="image-button-wrapper photo-btn">
            <span class="item-photo-btn"><i class="br-ico"></i></span>
          </div>
        </div>
      </figcaption>
    </figure>
  </div>
</div>

The jquery code i am using:我正在使用的 jquery 代码:

$(function(){  
$( ".image-button-wrapper").addClass( "photo-btn");
$( ".design-layout-card").addClass( "menu-plugin");
$( ".design-layout-card").addClass( "unactive");
$( ".image-button-wrapper" ).click(function() {
 $( ".design-layout-card").toggleClass( "unactive", 1000);
})
});

You can do it like this:你可以这样做:

Just create a class for the selected item and remove it from everyone just before adding it again on the clicked item.只需为所选项目创建一个 class 并将其从所有人中删除,然后再将其添加到单击的项目上。

 $(".list-item").on("click", function(){ $(".list-item").removeClass("active"); $(this).addClass("active"); });
 ul li{ padding: 6px 15px; list-style: none; margin: 5px 0px; border: 1px solid #000000; cursor: pointer; width: fit-content; } li.active{ background-color: red; color: white; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <ul> <li class="list-item active">Option 1</li> <li class="list-item">Option 2</li> <li class="list-item">Option 3</li> <li class="list-item">Option 4</li> <li class="list-item">Option 5</li> </ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在单击元素时切换类,但使用 JQuery 从所有其他元素中删除相同的类? - How do I toggle a class on click of an element but remove the same class from all other elements using JQuery? 在单击时,仅将类应用于单击的元素,而不是将所有元素都应用于同一类 - On click only apply class to element clicked, not all elements with the same class 如何从 `onClick` 事件(从 jQuery 到纯 JS)切换元素 class? - How to toggle elements' class from an `onClick` event (from jQuery to pure JS)? 切换按钮 - 单击一个和所有切换开关 - toggle button - click one and all toggles switch 如何在按钮单击时切换隐藏/显示具有相同类名的所有元素 - How to toggle hide/show of all elements with same class name on button click 按钮只隐藏标签的双击而不是单击。 我想单击一下 - button is getting hide only double click of the label not in single click. i want it in single click Vanilla Javascript:如果单击具有相同切换类的Y元素,则从X元素中删除切换类 - Vanilla Javascript: Remove toggle class from X element if I click on Y element with the same toggle class jQuery:在一个元素上切换类,从所有其他元素上删除类 - jQuery: Toggle class on one element, remove same from all other 通过单击按钮在列表元素之间切换 class - Toggle class between list elements on click of a button 在按钮上切换类单击多个元素 - Toggle Class on Button click for multiples elements
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM