使用命名自调用函数简化代码

时间:2013-11-24 20:02:57

标签: javascript

我有这个脚本:

function fixHeight () {
  $(".sidebar-mainbox-container").height($(window).height());
})

fixHeight();

$(window).on("resize", function() {
  fixHeight();
})

我正在寻找一种使用自调用函数简化它的方法,然后在resize事件中调用它。
我试过这个:

var fixHeight = (function () {
  $(".sidebar-mainbox-container").height($(window).height());
})();
$(window).on("resize", function() {
  fixHeight();
})

但是通过这种方式,自调用函数的值被分配给fixHeight,这不起作用。
如果我删除了自我调用的部分......

var fixHeight = (function () {
  $(".sidebar-mainbox-container").height($(window).height());
});
$(window).on("resize", function() {
  fixHeight();
})

然后该功能仅在我调整大小时才起作用,这不好。

如何简化此代码以避免3个元素执行这么简单的任务?

1 个答案:

答案 0 :(得分:4)

有什么问题
$(window).on("resize", function() {
  $(".sidebar-mainbox-container").height( $(this).height() );
});

为了避免额外的函数调用,只需在注册后立即触发事件。

$(window).on("resize", /* ... */).trigger("resize");