jQuery闭包函数和resize事件

时间:2015-12-29 09:22:52

标签: jquery

如何在调整屏幕大小时调用闭包功能?

我有以下结构:

(function() {
 // code
})(jQuery, false)

如何在窗口调整大小时重启此功能?

$(window).on('load resize', function () {
 // restart closure
});

或者有没有办法调用嵌套函数?

(function() {
 var n = function() {
  }
})(jQuery, false)

来源:http://codepen.io/anon/pen/rxWaOK 我需要的是在调整大小时重置图片的宽度。

2 个答案:

答案 0 :(得分:1)

您必须多次命名要调用的功能。

(function() {
  var fn = function(jQuery, yourbool) {
    // put the code here
  };

  fn(jQuery, false);

  $(window).on('load resize', function () {
    fn(jQuery, false);
  });

});

答案 1 :(得分:1)

此函数样式是一个自动执行的匿名函数。这种函数不能被调用,只能执行一次。

(function(/*Param given to the function*/) {
 // code
})(jQuery, false); //<-- This values are the parameters given to your function.
                   //    In your case, you don't need parameter or you should 
                   //    declare your parameters inside the brackets.

要重用函数,您应该在同一范围内声明它并从事件处理程序中调用它:

$(function() {
    function myFunction(evt) {
        console.log(evt);
    }

    $(window).on('load resize', myFunction);
});