切换功能的更好方法

时间:2017-05-23 15:30:48

标签: jquery function toggle

现在我正在切换div以展开和折叠

我正在寻找一种更优雅的方法来创建这两个函数并切换它们。任何帮助将不胜感激。

    var collapseExpand = [collapse, expand];

    function collapse (){
        $('#document').removeClass('col-sm-5').addClass('col-sm-12 col-md-2 collapsed');
        $('#stages').removeClass('col-sm-7 collapsed').addClass('col-sm-12 col-md-10');
    }

    function expand () {
        $('#document').removeClass('col-sm-12 col-md-2').addClass('col-sm-5');
        $('#stages').removeClass('col-sm-12 col-md-10').addClass('col-sm-7');
    }     

    $('.col-expand').on('click', function(e){

        e.preventDefault();
        collapseExpand.reverse()[1]();

    });

1 个答案:

答案 0 :(得分:2)

您可以在单个函数中使用toggleClass()

$('.col-expand').on('click', function(e){
  e.preventDefault();
  $('#document').toggleClass('col-sm-12 col-md-2 col-sm-5 collapsed');
  $('#stages').toggleClass('col-sm-12 col-md-10 col-sm-7');
});

此方法将删除已应用于该元素的所有类,并添加任何不属于该元素的类。