【问题标题】:jquery hide() and slideDown()jquery hide() 和 slideDown()
【发布时间】:2013-06-23 12:16:05
【问题描述】:
$(document).ready(function(){
 $('#AddCity').hide();
 $('#AddCityA').click(function(){
     if ( AddCityVar==1 ){
         $('#AddCity').hide();
         var AddCityVar=0;
     }else{
           $('#AddCity').slideDown("slow");
           var AddCityVar=1;
     }
  });

我想不通,为什么 ID 为 #AddCity 的 div 在第一次单击 #AddCityA 链接时会打开,但在第二次单击时从不隐藏? $('#AddCityA').click(function() 只工作一次吗?

<a href="#" id="AddCityA">Add City</a> 

<div id="AddCity">
    here some code
</div>

感谢您的帮助

【问题讨论】:

    标签: jquery show-hide slidedown


    【解决方案1】:

    您似乎每次为 AddCityVar 分配一些值时都在重新初始化它。您需要将其超出点击功能的范围:

    $(document).ready(function(){
        $('#AddCity').hide();
        var AddCityVar= 0;
        $('#AddCityA').click(function(){
          if ( AddCityVar==1 ) {
             $('#AddCity').hide();
             AddCityVar=0;
          }
          else {
             $('#AddCity').slideDown("slow");
             AddCityVar=1;
          }
        });
     });
    

    但是,正如所提到的,它不需要一个变量来执行此操作。你可以使用slideToggle

    $('#AddCityA').click(function () {
      $('#AddCity').slideToggle("slow");
    });
    

    一个演示:http://jsfiddle.net/hungerpain/9cdKL/

    【讨论】:

    • +1 但 AddCityVar 不需要在全局范围内,顺便说一句,在您的示例中,它不是
    • @passionateCoder 非常感谢你!是的,这个正在工作
    • @user2437063:很高兴为您提供帮助。如果您认为这对您有所帮助,请务必将其标记为正确答案:)
    【解决方案2】:

    你可以检查元素是否可见:

    $(document).ready(function () {
        $('#AddCity').hide();
        $('#AddCityA').click(function () {
            var state = $('#AddCity').is(':visible');
            $('#AddCity')[state?'hide':'slideDown'](state ? 0 : 'slow');
        });
    });
    

    FIDDLE

    对于更简单的方法,您可以双向滑动元素:

        $('#AddCity').hide();
        $('#AddCityA').on('click', function () {
            $('#AddCity').slideToggle('slow');
        });
    

    【讨论】:

    • 我希望我能投票赞成。这个也运行良好。谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多