$(window).resize(); not working



我有以下两个函数需要$(window).resize();$(document).ready();才能工作。

我正在尝试通过删除 $(window).resize(); & $(document).ready(); 的副本来优化代码并缩短代码,并且只在文件中显示一次,然后将所有需要它们的函数包装在其中。

例如

function onResize(){
   //Grid system
   var gridElement = $(".gridElement", "#grid3");
   function GalleryGrid() {
      var grid3 = $('#grid3');
      var width = $(window).width();
      if (width < 1024 && width > 770) {
         var grid1 = $('#grid1');
         var grid2 = $('#grid2');
         for (var i = 0; i < gridElement.length; i++) {
            if (i < gridElement.length / 2) {
               grid1.append(gridElement[i]);
            } else {
               grid2.append(gridElement[i]);
            }
         }
      } else {
         grid3.append(gridElement);
      }
   }
   //Full screen
   function fullScreen() {
       var newHeight = $("html").height() + "px";
       $(".fullscreen").css("height", newHeight);
   }
}
$(document).ready(onResize);
$(window).resize(onResize);

整个代码用$(document).ready(function(){包装

但是,我围绕这种方法的所有尝试都在破坏代码,尤其是网格系统......根本行不通,我做错了什么?

我的理解是,您希望在收到 resize 事件时执行 onResize() 函数。 你似乎与文档就绪的东西的工作方式有点不同步 - 我建议你阅读一些基本的jquery教程 - 但是,基本上,你想使用$(function()....中的函数在文档完全加载后将事件处理程序应用于窗口。

在这里,您似乎 - 错误地 - 假设您正在运行的$(窗口).resize...在调用$(docyument).ready之后...会等到 .ready() 函数执行,但这不是它的工作原理。 文档达到满载状态后应执行的代码应进入函数参数 $()。

基本上,您希望将事件处理程序赋值放在 .ready() 函数中,如下所示:

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

最新更新