私は jquery プログラミングの初心者です。私のコードが悪い場合は申し訳ありません。
私は単純なhtmlファイルを持っています
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
var arr = [];
var items = {};
$.getJSON('testjson.json', function(data) {
$.each(data, function(key, value){
arr.push(value);
});
arr.join(',');
items = {source: arr};
});
$("input#autocomplete").autocomplete(items);
});
</script>
</head>
<body style="font-size:62.5%;">
<div id="Heading" >
<h2 align="center">Client Browser</h2>
</div>
<input id="autocomplete" size="100" align="middle"/>
</body>
</html>
これは私の testjson.json ファイルです:
{
"1":"One",
"2":"Two",
"3":"Three"
}
Altova XML スパイを使用して html ファイルを実行すると、適切な出力が得られます。しかし、ブラウザー (XAMP サーバーを介して実行) で開くと、Firefox コンソールに次のように表示されます。
jquery-ui.min.js 5 行目の「this.source は関数ではありません」
ただし、たとえば、JS オブジェクトをオートコンプリート関数に直接渡すと機能します。次のコードは機能します。
$("input#autocomplete").autocomplete({source:["One", "Two", "Three"]});
アイテムに同じオブジェクトが含まれているため、問題がどこにあるのか理解できません。ここで何が正しくないのですか?