2013-04-01 87 views
1

我有這樣的代碼:如何讓div隱藏onclick並在再次點擊時顯示它?

<script> 
(function ($) { 
    $(document).ready(function() { 
     $("#thisclick, #thisclick2").click(function() { 
      if ($('.example').is(":hidden")) { 
       $(this).html($(this).html().replace(/Hide/, 'Show')); 
      } else { 
       $(this).html($(this).html().replace(/Show/, 'Hide')); 
      } 
      // Do it afterwards as the operation is async 
      $(".example").hide(); 
     }); 
    }); 
})(jQuery); 
</script> 

當前代碼的工作方式是,如果被點擊#thisclick它隱藏#example。這是我需要的,但是當再次點擊#thisclick時,我希望它顯示#example。使用上面的代碼,它不會工作。我該怎麼做才能做到這一點?

+0

使用[JQuery的.hide()](HTTP ://api.jquery.com/hide/)和[JQuery .show()](http://api.jquery.com/show/)。 – Vucko

+0

如果我正確理解你,你有$('#thisclick')。slideToggle('slow');'而不是'$('#example')。slideToggle('slow');'。 – Kyle

+0

@kyle,對不起,我發佈了舊代碼。我用我目前使用的那個更新了我的問題。 – starbucks

回答

4

你應該能夠改變你的代碼如下所示:

(function ($) { 
    $(document).ready(function() { 
    $("#thisclick").click(function() { 
     $("#example").slideToggle("slow"); 
     }); 
    }); 
})(jQuery); 

這裏是一個快速的樣品鏈接: http://jsfiddle.net/andyjmeyers/szmXp/

+1

謝謝安迪。它工作正常,但我有兩個我正在使用的ID。只要我點擊第二個,它就會起作用,但如果我使用第一個,它將不起作用。這是我如何使用這一行:$(「#thisclick,#thisclick2」)。click(function(){ – starbucks

+0

我更新了包括2個按鈕的小提琴都執行相同的函數調用。 ()#thisclick,#thisclick2「)。click(function(){}) –

+1

謝謝,這與我更新你的初始代碼一樣,但它不會按照它的方式工作。 – starbucks

0
<script> 
    (function ($) { 
      $(document).ready(function() { 
      $("#thisclick").click(function() { 
      if ($('#example').is(":hidden")) { 
       $(this).html($(this).html().replace(/Hide/, 'Show')); 

      } else { 
       $(this).html($(this).html().replace(/Show/, 'Hide')); 
      } 
      // Do it afterwards as the operation is async 
      $("#thisclick").slideToggle("slow"); 
      if($("#example").attr("isHidden") == "1") 
        $("#example").slideToggle("slow"); 
      $("#example").attr("isHidden","1"); 
      }); 
     }); 
     })(jQuery); 
     </script> 
0

你可以這樣做:

$("#thisclick").click(function() { 
    if ($('#example').hasClass("hidden")) 
    { 
     $('#example').removeClass("hidden"); 
     $('#example').show(); 
    } 
    else 
    { 
     $('#example').addClass("hidden"); 
    } 
} 

或更容易:

$("#thisclick").click(function() { 
    $('#example').toggleClass("hidden"); 
} 

定義樣式「:

.hidden 
{ display:none;} 
1

你是否期待像

<button>This click</button> 
<p style="display: none">Example</p> 

<script> 
$("button").click(function() { 
$("p").toggle(); 
}); 
</script> 

請檢查它http://jsfiddle.net/X5r8r/1107/

相關問題