我有以下两个需要$(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 ......它根本不起作用,我做错了什么?
答案 0 :(得分:0)
我的理解是你想在收到resize事件时执行onResize()函数。您似乎与文档就绪的工作方式有点不同步 - 我建议您阅读一些基本的jquery教程 - 但是,基本上,您希望在$(函数)中使用该函数()....)在文档完全加载后将事件处理程序应用于窗口。
在这里,你似乎 - 错误地 - 假设你在运行$(窗口).resize ...之后调用$(docyument).ready ...会等到.ready()函数执行,但那不是那么有效。在文档达到满载状态后应该执行的代码应该进入函数参数$()。
基本上,您希望将事件处理程序赋值放在.ready()函数中,如下所示:
$(function() {
$(window).resize(onResize);
});