我可以将这两个功能合并为一个吗?

时间:2014-03-14 06:52:37

标签: jquery

因为一个已经准备好而另一个正在调整大小,是否可以压缩这两个?

  $(window).on('load', function(){
    var $div = $('#wrapper .col');
    var max = 0;
    $.each($div , function(){
      if(parseInt($(this).outerHeight()) > max){
        max = parseInt($(this).outerHeight())
      }
    });
    $("#wrapper").css('height', max + 'px');
  });

  $(window).on('resize', function(){
    var $div = $('#wrapper .col');
    var max = 0;
    $.each($div, function(){
      if(parseInt($(this).outerHeight()) > max){
        max = parseInt($(this).outerHeight())
        $("#wrapper").css('height', max + 'px');
      }
    });
  });

这是按原样运作的,但我想做类似的事情:

  function resize(){
    var $div = $('#wrapper .col');
    var max = 0;
    $.each($div, function(){
      if(parseInt($(this).outerHeight()) > max){
        return parseInt($(this).outerHeight())
        $("#wrapper").css('height', max + 'px');
      }
    });
  }


  $(window).on('load', function(){
    $("#wrapper").css('height', resize() + 'px');
  });

  $(window).on('resize', function(){
    $("#wrapper").css('height', resize() + 'px');
  });

然而,这并不起作用。

3 个答案:

答案 0 :(得分:3)

使用如下空格在on方法中附加load和resize:

$(window).on('load resize', function(){ 

你还需要在最后绑定resize()方法:

}).resize();

答案 1 :(得分:1)

请阅读 docs

  

将一个或多个事件的事件处理函数附加到   选定的元素。

该方法采用以下参数:

.on( events [, selector ] [, data ], handler(eventObject) )

您可以看到事件是复数以及描述的描述:

  

一个或多个空格分隔的事件类型和可选的命名空间,例如   如“click”或“keydown.myPlugin”。

所以你可以这样做:

$(window).on('load resize', function(){ 
    // Your code here
});

答案 2 :(得分:0)

你也可以使用bind

$(window).bind('load resize',