【问题标题】:SlideUp Jquery doesn't workSlideUp Jquery 不起作用
【发布时间】:2014-11-02 18:50:13
【问题描述】:

我对 jquery 的“slideUp”有疑问。

在“slideDown”之后,我隐藏了打开的按钮,并将其显示在另一个 div 中。 这应该会关闭打开的框

HTML

  <div class="ciao">
    <div id="cerca"><input type="text" /></div>
      <div id="flip"><a href="#">button</a></div>
         <div id="panel">
           <ul><li>menu 1 </li><li>menu 2 </li><li>menu 3 </li></ul>
         </div>
      </div>

JS

       $("#flip a").click(function(){
        $(this).hide();
        $("#panel").slideDown("slow");
        $('#flip').animate({top:'30px'});
        $('#cerca').append('<a href="#" id="close">CHIUDI</a>');
     });

    $("#cerca a#close").click(function(){
        $(this).parent('#panel').slideUp("slow");
     });

JSFIDDLE http://jsfiddle.net/rttoorop/

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    您需要使用事件委托将事件附加到动态创建的元素上。您还需要将选择器修改为 ID 为 panel 的目标元素:

    $("#cerca").on('click','a#close',function(){
       $(this).parent().siblings('#panel').slideUp("slow");
    });
    

    Working Demo

    【讨论】:

      【解决方案2】:

      您需要动态创建元素on method的事件委托方法:

      $(document).on('click',"#cerca a#close",function(){
              $(this).parent('#panel').slideUp("slow");
           });
      

      I've answered more about event delegation method here

      【讨论】:

        【解决方案3】:

        您正在将“点击”事件绑定到不存在的元素。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多