1

私はいくつかのjqueryを使っtoggle()ています、現在が閉じているか表示されているかによって異なるアクションを実行しています、私はdivかどうか、または私がやりたいdivことを簡単に確認できることを知っていますが、おそらくそれがあると思いますコードの量を減らすことができますか、それとももっと効率的にすることができますか?これは表示時と終了時の2つの関数でtoggle()を宣言するようなものですが、これは可能ですか?hasClass()is(':visible')

あなたが私が意味することを理解することを望みますか?

このように、またはjsfiddleを確認してください

$('#click_me').on('click', function() {
    $('#contain').toogle('blind', 300, function (){
        alert('open');
    }, function (){
        alert('close');          
    });
});
4

2 に答える 2

2
var container = $('.container');
$('.button').click(function() {
  container.toggle(function() {
    alert(container.is(':visible') ? 'open': 'close');
  });
});
于 2012-10-09T15:30:16.370 に答える
1

小さなjQueryプラグインを作成するだけです。

(function($){
    $.fn.myToggle = function(duration, cbShow, cbHide){
        this.each(function(){
            $(this).toggle(duration, $(this).is(":visible") ? cbHide : cbShow);
        });
    };
})(jQuery);

質問で提案したとおりの使用法。イージング方法を省略しました...

デモ(JSFiddle)

于 2012-10-09T15:35:01.133 に答える