【问题标题】:Repeat a function on window resize in jQuery在jQuery中对窗口调整大小重复一个函数
【发布时间】:2011-03-16 04:40:12
【问题描述】:

我写了一个函数来调整和定位固定位置的图像。我想在 jQuery 中对窗口调整大小重复函数“imgControl”。我确信有一些超级简单的方法可以做到这一点,但到目前为止我的搜索一直没有结果。我可能只是不知道要使用的正确搜索词。任何帮助将不胜感激!

如果我简单地将函数复制到调整大小事件中,整个事情就可以完美运行,但这似乎不优雅且不必要。似乎应该有一种方法可以再次调用该函数。

这是我的代码:

$(window).load(function imgControl() {
    $('div.lb_img img').each(function () {
        var lb_img_id = '#' + $(this).attr('id');
        /* image size */
        var max_height = $(window).height() - 50;
        var max_width = $(window).width() - 50;
        $(function() { $(lb_img_id).aeImageResize({width:max_width, height:max_height}); });
        /* image position */
        var img_y = ($(this).attr('height') + 14) * -0.5;
        var img_x = ($(this).attr('width') + 14) * -0.5;
        $(this).css('margin-top', img_y).css('margin-left', img_x);
    });
}); 
$(window).resize(function() {
    imgControl();
});

【问题讨论】:

标签: jquery function resize window


【解决方案1】:

以可以从任何需要的地方调用它的方式定义您的函数。像这样:

var imgControl = function() {
    $('div.lb_img img').each(function () {
        ... // etc
    });
};

$(document).ready(function () {
    imgControl();
});

$(window).resize(function() {
    imgControl();
});

【讨论】:

  • 我知道,有时这就像一场比赛。 :)
  • 感谢 bigmattyh!另外,感谢 CtrlDot 所做的努力。这非常有效,现在我知道了一些我真的应该知道的事情。
  • 顺便说一句:不需要匿名函数,你可以简单地使用$(imgControl);$(window).resize(imgControl);
猜你喜欢
  • 1970-01-01
  • 2015-04-26
  • 2016-05-03
  • 2014-04-03
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 2023-03-19
相关资源
最近更新 更多