2016-05-13 7 views
-1

にトリガします。代わりに私は同様のslideToggle()タイプのアニメーションを持っています。機能がトリガ以下の通りです:jqueryのトグルは()私はこの単純な機能を持っている、不要なアニメーション

function fixPanelHeight() { 
    var maxPanelHeight = 0; 
    $(".inner-menu-panel-containter").children(".menu-panel").each(function(){ 
     var element = $(this); 
     element.css("height", "auto"); 
     if (element.height() > maxPanelHeight) { 
      maxPanelHeight = element.height(); 
     } 
    }) 
    if (maxPanelHeight > 0) { 
     $(".inner-menu-panel-containter").children(".menu-panel").height(maxPanelHeight); 
    } 
} 

私は

$('.tools-dropdown-launch').click(function(e) { 
    e.preventDefault(); 
    $('.tools-dropdown-content').toggle(); 
}); 

に第一の機能を変更しようと、期待どおりに動作します:私はアニメーションを持っていませんが(もちろん)機能がトリガされていません。

なぜこのようなことが起こりますか?

cssには高さの遷移はなく、slideToggle()はjsファイルのどこにもありません。

これは

$('.tools-dropdown-content').slideToggle(0 , function() { 
     fixPanelHeight(); 
    }); 

で解決されたが、私はこのクイックフィックスその後、より良いものを好むだろう。

+0

完全なコールバック関数をjq [toggle()](http://api.jquery.com/toggle/)メソッドに渡すと、デフォルトの継続時間(400ms)を使用してアニメーションが呼び出されます。さて、あなたの期待される行動は何かが明確ではありませんか? 'toggle()'だけで何が問題になっていますか? –

+0

私はtoggle()を使用していて、私の関数ではslideToggle()を使用していないので、アニメーションを持たないことを期待しています。これを避ける方法はありますか?私は表示をトグルする必要があります:特別な効果、トランジション、またはアニメーションなしの/ブロックなし – valerio0999

+0

しかし、私はまだ '.toggle()'を使うことができませんか?アニメーションは使用しません。そして、それが同期しているので、あなたはちょうど '$( '。tools-dropdown-content').toggle();を使うことができます。 fixPanelHeight(); ' –

答えて

-1
$("#show_advance").click(function() { 
      // $(".ad_search").slideToggle("slow"); 
      if ($(".ad_search").is(':hidden')) { 
       $('.advance_search').text('hide Advance Search'); 
       $(".ad_search").slideToggle("slow"); 
      } 
      else { 
       $('.advance_search').text('Show Advance Search'); 
       $(".ad_search").slideToggle("slow"); 
      } 
     }); 

これは役立つかもしれません。

関連する問題