1

我正在做一些 jquery 的东西toggle(),我正在做不同的操作,具体取决于当前div是关闭还是显示,我知道我可以轻松检查是否是 divhasClass()is(':visible')我想要做什么,但我在想也许有某种方式我可以减少代码量还是让它更有效率?比如用两个函数声明toggle(),这是在显示时使用的,这是在关闭时使用的,这可能吗?

希望你明白我的意思?

像这样,或者检查一个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 回答