jQuery 點擊顯示再次點擊隱藏


<html>
    <head>
        <script type="text/javascript" src="/jquery/jquery.js"></script>
    </head>
    <body>
        <div>
            <span class="color">深咖色</span>
            <div class="cc"></div>
        </div>
        <div>
            <span class="size">11*11</span>
            <div class="bb"></div>
        </div>
    </body>
</html>
            
1 .color,.size{  font-size:14px; color:black;}
2 .cc{ width:300px;height:100px;background:red;}
3 .bb{ width:300px;height:100px;background:red;}

第一種是簡單的顯示和隱藏,使用了bind()和toggle();

1 $(function(){
2      $(".color").bind("click",function(){ $(this).next(".cc").toggle();});
3      $(".size").bind("click",function(){ $(this).next(".bb").toggle();});
4 });

toggle()方法自己就有顯示隱藏的作用。

但是這段js的缺點是,當我點擊“深咖色”顯示紅色方塊,再次點擊“11*11”時,綠色方塊出現,但是紅色方塊也不會隱藏,如圖:

第二種方法:改進上述的缺點,當再次點擊時,隱藏其他,只出現點擊出現的相應內容。

$(function(){
  $(".color").bind("click",function(){ $(this).next(".cc").show(); $(".bb").hide(); }); $(".size").bind("click",function(){ $(this).next(".bb").show(); $(".cc").hide(); }); });

第三種,在第二種的基礎上添加,當點擊顯示時,出現相應內容,點擊其他消失,或者點擊其他空白處消失。

  $(function(){
    
    $(".color").bind("click",function(){ 
      $(this).next(".cc").show();
      $(".bb").hide();
    });
       $(".size").bind("click",function(){ 
      $(this).next(".bb").show();
       $(".cc").hide();
   });
 
$(".color").on("click", function(e){
    $(document).one("click", function(){
        $(".cc").hide();
      $(".bb").hide();
    });

    e.stopPropagation();
});
$(".cc").on("click", function(e){
    e.stopPropagation();
});

$(".size").on("click", function(e){
    $(document).one("click", function(){
        $(".bb").hide();
    $(".cc").hide();
    });

    e.stopPropagation();
});
$(".bb").on("click", function(e){
    e.stopPropagation();
});
 });

 one() 方法為被選元素附加一個或多個事件處理程序,並規定當事件發生時運行的函數。

當使用 one() 方法時,每個元素只能運行一次事件處理器函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM