2017-10-17 26 views
0

我對此很陌生,但是我做了很多搜索,找不到關於爲什麼我的腳本沒有在jQuery之後加載的答案。我收到了一個錯誤:在jQuery之後加載我的Javascript

$ is not defined

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script src="jquery-3.2.1.min.js"></script> 
<script> 
    $(document).ready(function() { 
    $('#nav li').hover(function() { 
     $('ul', this).show(); 
    }, function() { 
     $('ul', this).hide(); 
    }); 
    }); 
</script> 
+4

鑑於你的榜樣,你的代碼已經在jQuery之後加載 - 儘管你包含兩次相同的jQuery庫。一個本地副本,一個遠程。我強烈建議你刪除一個。代碼中是否存在特定的錯誤?如果是這樣,請檢查控制檯並將其編輯到問題中。還要注意,懸停效果不需要JS; CSS更合適。 –

+0

感謝您的編輯。鑑於'$未定義'的錯誤,這意味着jQuery沒有正確包含在頁面中。你很可能需要刪除第二個'script'標籤。 –

+0

你是否在'file:'協議嘗試代碼? – guest271314

回答

0

試試這個

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
alert("hello"); //your script here 
}); 
</script> 
+0

「試試這個」,並且僅對代碼進行解答是不鼓勵的。請_explain_您的代碼如何解決問題。 –

+0

只是刪除第二個ligne :) – MagentoDeveloper

0

Loading JavaScript is Synchronous by default,除非你告訴瀏覽器來處理它以不同的方式。 此基礎上,把你的腳本,包括jQuery將確保jQuery的後執行腳本後,請

因此,對於你的代碼的工作,做這樣的事情:

console.log('$ is ', typeof $)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>