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

标签 javascript

我有这个脚本:

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

fixHeight();

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

我正在寻找一种使用自调用函数来简化它的方法,然后在调整大小事件中调用它。
我已经尝试过这个:

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 个元素?

最佳答案

出了什么问题

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

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

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

关于javascript - 使用命名自调用函数简化代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20180276/

相关文章:

asp.net - 在离开 asp :textbox. 时,我必须做两件看似相互排斥的事情,请帮我澄清一下

javascript - Adobe Animate CC - 重复使用的按钮无法正常工作 HTML5

javascript - 在 <ul><li><a> 的第一级上获取没有 id 和 e.preventDefault() 的 <ul> 列表中的子 <ul>

javascript - 我的 javascript 无法在浏览器中缓存

javascript - 清除 JavaScript 函数中的 FormData()

javascript - jQuery 迁移插件不允许我使用 jQuery(htmlString)

javascript - 多个 ID 调用同一个 JavaScript 函数

javascript - 请任何人为Web中的表结构提供帮助

javascript - 用于检查正确的 Javascript 语法的工具或实用程序

javascript - 如何使用 jquery css 将按钮的背景图像分配给变量