2011-01-10 135 views
6

我想使用自動完成的代碼。代碼是here我應該在哪裏放置我的JavaScript代碼?

<script> 
    $(function() { 
     var availableTags = [ 
      "ActionScript", 
      "AppleScript", 
      "Asp", 
      "BASIC", 
      "C", 
      "C++", 
      "Clojure", 
      "COBOL", 
      "ColdFusion", 
      "Erlang", 
      "Fortran", 
      "Groovy", 
      "Haskell", 
      "Java", 
      "JavaScript", 
      "Lisp", 
      "Perl", 
      "PHP", 
      "Python", 
      "Ruby", 
      "Scala", 
      "Scheme" 
     ]; 
     $("#tags").autocomplete({ 
      source: availableTags 
     }); 
    }); 
    </script> 



<div class="demo"> 

<div class="ui-widget"> 
    <label for="tags">Tags: </label> 
    <input id="tags"> 
</div> 

</div><!-- End demo --> 



<div class="demo-description" style="display: none; "> 
<p>The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are tags for programming languages, give "ja" (for Java or JavaScript) a try.</p> 
<p>The datasource is a simple JavaScript array, provided to the widget using the source-option.</p> 
</div><!-- End demo-description --> 

但是,我不知道我應該把這個代碼放在哪裏。在頭上?在身體?

回答

0

是的,你應該把它放在身體的元素。

0

如果可以的話,把它放在非常年底<body>元素後,你已經包括jQuery的自動完成插件本身,你依賴於任何其他庫。在<body>末尾放置腳本通常(在撰寫本文時:-)被認爲是最佳實踐,因爲它允許瀏覽器在不必擔心腳本執行之前進入標記。

3

根據w3schools

當把腳本HEAD

腳本的時候都 調用,或者當觸發一個事件, 被放置在函數中執行。把你的 函數放在頭部,這 它們都在同一個地方, 它們不會干擾頁面 的內容。

當把腳本BODY

如果你不想你的腳本是 放在函數內部,或者如果你的 腳本應該寫頁面內容,它 應放置在身體部分。

所以在你的情況。你可以把這個腳本在body

+4

只是一個提示:在這裏使用w3schools作爲參考將導致大量的sn and和嘲笑。它不是權威的信息來源;它只是一個具有不同質量信息的隨機網站。特別是,這個建議很奇怪,並不是很全面,甚至不準確。 – Pointy 2011-01-10 14:34:54

+0

好的。那麼你在哪裏建議尋找正確的信息?據我所知,http://www.w3.org/TR/html4/interact/scripts.html沒有具體說明最佳做法。 – 2011-01-10 15:11:06

+0

這可能不是那種在真實規範中會出現的東西。這是一個關注好博客和在Stackoverflow等網站上閱讀好答案的問題 - JavaScript性能(以及一般的客戶端優化)近來是一個非常熱門的話題,「最佳實踐」觀點迅速演變。 – Pointy 2011-01-10 15:22:03

2

把它放進外部文件,然後鏈接與HTML文檔文件使用:

<head> 
    ... 
    <script type="text/javascript" src="/scripts/my-script.js"></script> 
</head> 

(如果你使用HTML5,你可以跳過type屬性)。

上述方式是最清楚最常見的方式,但有些研究證明它並不是最快的方法。您可以在</body>元素之前放置該JavaScript,跳過jQuery.read()(在這種情況下爲$(function() { ... });,這是簡寫形式)。在這種情況下,你會獲得一些毫秒(或更少),但我只是覺得被迫注意到這一點。

相關問題