2011-10-06 58 views
1

我想做一個粘滯的導航行爲,但jQuery腳本似乎沒有工作或加載。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')犯規顯示螢火控制檯上。任何想法?還是我錯過了什麼? TIA!

回答

1

您沒有執行此功能。

嘗試增加()的功能是這樣的:(function(){})()

2

你的功能被包裹在括號中。如果刪除函數體,你留下了這一點:

(function() {}); 

我覺得要麼你想製作一個自動執行功能,在這種情況下,你錯過了第二組括號到實際執行的功能:

(function() {})(); 

或者你試圖使用jQuery的簡寫$(document).ready,在這種情況下,你就錯過了$

$(function() {}); 
+0

+1解釋這兩種可能性 – meouw

1

您在開始時缺少$。

編輯這部分

(function() { 

這樣

$(function() {