$(window).width()和$(window).height()返回NULL -JQuery

时间:2011-03-27 22:33:13

标签: javascript jquery

我希望使用$(window).width()$(window).height()函数来获取浏览器窗口的大小。但是这两个返回null。 $(window)不为空,它返回“对象”。 我也试过使用$(document).width()$(document).height(),这两个不返回null,它们返回特定值,但它们大于窗口大小。知道为什么$window 2值为空?

$(window).load(function () {

            var view = $("#view");
            var image = $("#image");
            var hiResImage = $("#hi-res-image"); 
            var zoom = $("<a id='zoom'><span><br /></span></a>");
            log("ERROR 1 = " + $(window).width());
            log("ERROR 1 = " + $(window).height());
            log("ERROR 1 = " + $(window));
            image.width($(window).width());
            image.height($(window).height());

.....

我应该初始化somw $(window)变量的方式吗?

2 个答案:

答案 0 :(得分:6)

就像评论者一样,我不确定为什么它不起作用,但这可以在vanilla JS和没有jQuery的窗口对象中完成,所以你可能会有更好的运气。可以绕过jQuery版本,浏览器兼容性等方面的一些问题

window.innerWidth   //just the actual document window
window.innerHeight
window.outerWidth   //includes brother toolbars, status bar, etc
window.outerHeight

我仍然建议你调查为什么你的oroginally尝试不起作用,不管根本问题是什么它可能会再次出现在其他地方。

答案 1 :(得分:2)

我在谷歌浏览器的控制台上玩游戏,以下内容适用于我:

$(window).attr('screen').height

$(window).attr('screen').width

编辑:请参阅jon_darkstar的回答。 $(window)函数是一个返回DOM元素的jQuery选择器。要访问对象的属性,您需要使用.attr()方法。我倾向于同意jon_darkstar,Occam的Razor指出,香草JS很可能是最好的方式,因而得到我的投票。但是如果你真的想要使用jQuery,那么上面的工作就可以了。