$(窗口).resize();不工作

时间:2014-02-18 16:09:11

标签: javascript jquery

我有以下两个需要$(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(){

然而,我所有围绕这种方法的尝试都破坏了代码,特别是Gridsystem ......它根本不起作用,我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

在这里,你似乎 - 错误地 - 假设你在运行$(窗口).resize ...之后调用$(docyument).ready ...会等到.ready()函数执行,但那不是那么有效。在文档达到满载状态后应该执行的代码应该进入函数参数$()。

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

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