javascript - Jquery 没有加载?

标签 javascript jquery navigation sticky

我正在尝试制作粘性导航行为,但 jQuery 脚本似乎无法正常工作或加载。

这是我的 html:

<html>
<head>
<title>Title</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
  <div id="logo-menu">
    <div id="main-menuid">
    <ul>
    <li><a href="#home">Home</a></li>
    <li><a href="#about">About</a></li>
    <li><a href="#menu">Menu</a></li>
    <li><a href="#contact">Contact</a></li>
    </ul>
    </div>
  </div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js" type="text/javascript"></script>
<script src="js/source.js" type="text/javascript"></script>
</body>
</html>

我还有一些标记可以让我的页面向下滚动以测试粘性导航。

这是 source.js:

(function() {
    // STICKY NAV
        console.log('hi')

    var $nav = $('#logo-menu'),
        navTop = $nav.offset().top,
        $navClone = $nav.clone(true)
            .hide()
            .addClass('sticky')
            .insertBefore($nav);

    $(window).scroll(function() {
        if ($(this).scrollTop() > navTop) {
            $navClone.show();
        } else {
            $navClone.hide();
        }


    });

即使是 console.log('hi') 也不会出现在 firebug 控制台上。任何想法?还是我错过了什么? TIA!

最佳答案

您的函数包含在括号中。如果你删除函数体,你会留下这个:

(function() {});

我想要么你想产生一个自执行函数,在这种情况下你会错过第二组括号来实际执行函数:

(function() {})();

或者您尝试对 $(document).ready 使用 jQuery 速记,在这种情况下您会遗漏 $:

$(function() {});

关于javascript - Jquery 没有加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7672885/

相关文章:

javascript - jQuery/Javascript - 单击复选框时提交表单

swift - 为什么按下后退按钮后导航 Controller 中的 View 会清晰?

android - BottomNavigationView 设计与 XML *没有编程

javascript - 遍历字符串并使用 repeat 方法

javascript - 使用 javascript 查询额外的 Rails 数据

javascript - 拉伸(stretch) div 作为最后的手段

jQuery 平滑滚动不适用于 SSL URL

html - 两个 div 元素并排放置的问题

JavaScript 获取网络摄像头分辨率

javascript - 禁用 Reactjs 中的依赖下拉选项