2011-10-18 39 views
3

並提前致謝閱讀。我試圖自定義jQuery UI自動完成搜索以顯示可點擊鏈接的結果,並且我已經成功。我在這個論壇上成功地模仿了另一個問題的代碼。jQuery UI自動完成 - 外部JavaScript數據源的語法?

然而,我最終將有太多的鏈接保存頁面爲一個變量上。我曾經使用舊版本的jQuery自動完成(在成爲jQuery UI之前),並能夠將變量「更新」存儲在JavaScript文件中。隨着UI中的新版本,我不知道這樣做。舊版本在這裏...

http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

和JavaScript文件中使用,有「localdata.js」

有誰知道如何將源從變量相同的HTML頁面上改變一個與jQuery UI版本中的變量完全相同的文本的外部JavaScript文件?

我也試過這裏的遷移指南; http://www.learningjquery.com/2010/06/autocomplete-migration-guide但我無法弄清楚這一點。

工作的代碼我有,不引用外部文件低於...

======================= =============================

<script> 
    $(function() { 


    var updates = [ 

    { value: "http://www.google.com", label: "Google"}, 
    { value: "http://www.yahoo.com", label: "Yahoo!"}, 
    ]; 

    $("input#autocomplete").autocomplete({ 
    source: updates, 
    select: function(event, ui) { 
    window.location.href = ui.item.value; 
    } 
    }); 
    }); 
    </script> 

============== =======================

我知道這個變化是「源;更新,」行,但我不知道該怎麼做。非常感謝您閱讀。

+0

我有完全相同的數組「var updates = [....」正如它在原始HTML文件上一樣。我說源是「source:array.js」,但似乎jQuery UI需要一些格式或查詢和響應與PHP?爲什麼?!這些演示文檔記錄很差。所有這些都在JAVASCRITPT中 - 它怎麼不知道該怎麼處理它? – user1000225

回答

0

之一來完成它的方式是存儲數據的JSON格式在一個單獨的文件。以你的榜樣,你可以在你的更新數組轉換成有效的JSON:

[{"value": "http://www.google.com", "label": "Google"}, 
{"value": "http://www.yahoo.com", "label": "Yahoo!"}] 

(請注意周圍的鍵和值,且無需可變雙引號),然後將其保存在updates.json文件。有了這個設置,您可以再設置source在自動填充到updates.json:

$("input#autocomplete").autocomplete({ 
    source: "updates.json", 
    select: function(event, ui) { 
    window.location.href = ui.item.value; 
    } 
}); 

這是假設你將成爲你的文件來自同一個域(自動完成也可以通過JSONP支持從遠程域調用)。