2017-06-13 144 views
0

我一直在尋找一種方法在每個頁面上獲得相同的導航欄。現在,我有一個加載到每個頁面上的jQuery腳本,它應該替換一個div佔位符;但是,當我運行該程序時,導航欄根本就不存在。JQuery get方法似乎不起作用

jQuery代碼:

$(function() { 
$("#dropdown").hover(function() { 
    $("#submenu").stop(); 
    $("#submenu").slideToggle(500); 
}); 

$("#submenu").hover(function() 
{ 
    $("#submenu").stop(); 
    $("#submenu").slideToggle(500); 
}); 

$.get("navigation.html", function(data){ 
    $("#nav-placeholder").replaceWith(data); 
}); 
}); 

導航文件:

<nav> 
<a href = "index.html">CV Game Development</a> 
<div class="menu"> 
    <div id="dropdown">Tutorials</div> 
     <div id="submenu"> 
      <a href="beginner.html">Beginner</a> 
      <a href="intermediate.html">Intermediate</a> 
      <a href="advanced.html">Advanced</a> 
     </div> 
    </div> 
</div> 
</nav> 

實際的HTML文件中使用:

<html> 
<meta charset="utf-8"> 
<meta name="viewport" content="width=device-width"> 
<link rel="stylesheet" type="text/css" href="main.css"> 
<script src="https://code.jquery.com/jquery-3.1.1.js"></script> 
<script src="main.js"></script> 
<head> 
    <title>CV Game Development</title> 
    <div id = "nav-placeholder"></div> 
</head> 
<body> 
    <h1 id = "intro">Welcome</h1> 
    <h3 id = "subintro">to the CV Game Development website</h3> 

    <p id = "info">Here is an abundance of information to get you started making 2D games with GameMaker: Studio.</p> 
</body> 
</html> 

好像它應該工作,然而,這不是「T。任何幫助非常感謝,謝謝!

+1

是什麼在你的JS控制檯?你採取了哪些調試步驟? –

+3

爲什麼你的'

'裏面'' –

+0

你應該使用'.load()'而不是發出異步請求:https://stackoverflow.com/questions/1246137/ajax-jquery-load-versus-jquery-得到。p/s:在附註中,使用jQuery對於您的問題確實是一個非常糟糕的解決方案:改爲使用模板系統(您甚至不需要CMS來完成此任務)。傑基爾是一個好開始。 – Terry

回答

1

:給<nav>一個id爲

<nav id="nav"> 

第二:您可以使用​​代替.get() ..而​​代碼應該看起來像

$('#nav-placeholder').load("navigation.html #nav"); 

以上代碼將包裝爲<nav id="nav"> int Ø<div id="nav-placeholder">

:如果您需要您更換可以使用unwrap()代替..所以你的代碼應該是這樣的

$('#nav-placeholder').load("navigation.html #nav" , function(){ 
    $('#nav').unwrap(); 
}); 

第四:我還不知道爲什麼你<div id = "nav-placeholder"></div>裏面<head>但我的任何測試方式,它的代碼將工作,即使它包裝到<head> ..

1

由於穆罕默德·優素福在評論注意到你已經把你的資產淨值,佔位符DIV元素標籤,這是它錯了地方。 它應該在內部元素內。

而且你元,CSS腳本標籤必須在元素。

<html> 
 

 
<head> 
 
    <title>CV Game Development</title> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <link rel="stylesheet" type="text/css" href="main.css"> 
 
    <script src="https://code.jquery.com/jquery-3.1.1.js"></script> 
 
    <script src="main.js"></script> 
 
</head> 
 

 
<body> 
 
    <div id="nav-placeholder"></div> 
 
    <h1 id="intro">Welcome</h1> 
 
    <h3 id="subintro">to the CV Game Development website</h3> 
 

 
    <p id="info">Here is an abundance of information to get you started making 2D games with GameMaker: Studio.</p> 
 
</body> 
 

 
</html>