1

我正在尝试制作粘性导航行为,但 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')没有出现在萤火虫控制台上。任何想法?还是我错过了什么?蒂亚!

4

3 回答 3

2

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

(function() {});

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

(function() {})();

或者您尝试使用 jQuery 简写$(document).ready,在这种情况下,您会丢失$

$(function() {});
于 2011-10-06T10:15:14.063 回答
1

您没有执行该功能。

尝试()像这样添加到函数中:(function(){})()

于 2011-10-06T10:13:21.303 回答
1

你一开始就少了一个 $ 。

编辑这部分

(function() {

像这样

$(function() {
于 2011-10-06T10:16:07.923 回答