首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery在$('#div').height上提供了一个未定义的输出

jquery在$('#div').height上提供了一个未定义的输出
EN

Stack Overflow用户
提问于 2017-03-01 19:55:42
回答 3查看 1.2K关注 0票数 2

我正在使用jquery,因为我的头在某个点是不固定的。它很好,但是,当我试图得到我的标题高度时,它会给出一个未定义的结果。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="header.js"></script>
</head>
<body>
<header>
    <div id="header">
    <nav>
        <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Portfolio</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">About</a></li>
        </ul>
    </nav>
    </div>
</header>

Jquery

代码语言:javascript
复制
$.fn.followTo = function (height) {
var $window = $(window);

$window.scroll(function (e) {
    if ($window.scrollTop() > height) {
        $('#header').css({
            position: 'absolute',
            top: height
        });
    } else {
        $('#header').css({
            position: 'fixed',
            top: 0
        });
    }
});
};
var windowHeight = $(window).height();
var headerHeight = $('#header').height();
console.log(windowHeight, headerHeight);

$('#header').followTo(windowHeight-headerHeight);

正如您可能看到的,header.js是外部的,但这不会产生任何问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-01 20:47:56

正如您所说,此代码位于外部文件中,并添加到<head>.So中。

发生的事情是:-

您的jQuery代码是在文档完全准备/呈现之前注册的。这就是为什么它不会识别任何HTML元素并且无法工作的原因

当您将其放在底部时,它将等待文档正确地准备/呈现,然后您的jQuery代码将注册并识别所有的HTML元素并开始工作。

我希望现在能消除你的疑虑。

解决方案:-

将外部jquery文件加载到当前文件的底部。

票数 1
EN

Stack Overflow用户

发布于 2017-03-01 21:01:25

@Jeoren:大多数jQuery位于页面底部,因为您需要DOM为操作做好准备。您甚至可以在头文件中包含外部文件,只需确保编写:

代码语言:javascript
复制
$(function(){
//your code goes here
});

您还必须确保将外部js添加到jQuery库后面的页面中,以便获得$ object。我希望这能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2017-03-01 20:05:28

这里的问题是,在页面被完全布局之前,您试图为一个元素获得一个高度。因此浏览器还无法确定高度(并返回null)。

尝试将代码放入加载事件处理程序中:

代码语言:javascript
复制
$(document).load(function(){
// your code here
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42540834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档