簡體   English   中英

單擊后在div之外被隱藏並顯示的標簽后如何隱藏/顯示標簽a

[英]how to hide/show tag a after click on it that is outside of a div which become hidden and shown

我有一些具有以下結構的html代碼。 當我單擊帶有“ moreCases”類的標簽a時,將顯示類“ container-cases”的div,而當我單擊帶有“ container-cases”類的div時,其隱藏,但帶有“ moreCases”的標簽a不會成為表演。我該如何解決?

HTML:

<a href="#!" class="moreCases show">more 1</a>
<div class="container-cases hide">
   <input type="text" />                 
   <a href="#!" class="lessCases">less 1</a>
</div>

JavaScript的:

$(document).ready(function () {
      $(".moreCases").each(function () {
          var more = $(this);
          more.click(function () {
              more.next().removeClass('hide').addClass('show');
              more.removeClass('show').addClass('hide');
          });
      });
      $(".lessCases").each(function () {
          var less = $(this);
          less.click(function () {
              less.parent().removeClass('show').addClass('hide');            
              less.prev(".moreCases").removeClass('hide').addClass('show');                                     
          });
      });
});

您必須在使用prev()之前將parent()作為目標:

less.parent().prev(".moreCases").removeClass('hide').addClass('show');

 $(document).ready(function () { $(".moreCases").each(function () { var more = $(this); more.click(function () { more.next().removeClass('hide').addClass('show'); more.removeClass('show').addClass('hide'); }); }); $(".lessCases").each(function () { var less = $(this); less.click(function () { less.parent().removeClass('show').addClass('hide'); less.parent().prev(".moreCases").removeClass('hide').addClass('show'); }); }); }); 
 .hide{ display: none; } .show{ display: block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#!" class="moreCases show">more 1</a> <div class="container-cases hide"> <input type="text" /> <a href="#!" class="lessCases">less 1</a> </div> 

刪除最后一個.addClass('hide')

 $(".moreCases").each(function () {
        var more = $(this);
        more.click(function () {
            more.next().removeClass('hide').addClass('show');
            more.removeClass('show');
        });
    });

工作實例

無需遍歷.moreCases.lessCases而只需向其添加click事件即可。 除了因為點擊是上a標簽,防止默認行為通過添加e.preventDefault

 $(document).ready(function() { $(".moreCases").click(function(e) { $(this).next().removeClass('hide').addClass('show'); $(this).removeClass('show').addClass('hide'); }); $(".lessCases").click(function(e) { e.preventDefault(); $(this).parent().removeClass('show').addClass('hide'); $(this).parent().prev(".moreCases").removeClass('hide').addClass('show'); }); }); 
 .hide { display: none; } .show { display: block; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#!" class="moreCases show">more 1</a> <div class="container-cases hide"> <input type="text" /> <a href="#!" class="lessCases">less 1</a> </div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM