3

こんにちは私はJqueryUIAutocompleを使おうとしていますが、いくつかの問題が発生しています。関数によって入力されるグローバル配列を使用しています。ただし、オートコンプリートは機能しません。これは、このウィジェットの使用方法の小さな例です。

    <!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="plugins/jquery-ui-1.8.23.custom/css/ui-lightness/jquery-ui-1.8.23.custom.css"/>
        <script type="text/javascript" src="plugins/jquery-ui-1.8.23.custom/js/jquery-1.8.0.min.js"></script>
        <script type="text/javascript" src="plugins/jquery-ui-1.8.23.custom/js/jquery-ui-1.8.23.custom.min.js"></script>
        <script type="text/javascript">
            var data = [];
            $(document).ready(function(){
                //var data1 = ["Luis","DJ","Jon","Les","Jimmy"];
                $("#autocomp").autocomplete({
                    source: data
                });
            });
            function Load(){
                data =  ["luis","dj","jon","les","jimmy"];
            }
            function Alert(){
                alert(data);
            }
        </script>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body onload="Load()">
        <div>
            Type:<input type="text" id="autocomp"/>
            <button onclick="Alert()">test</button>
        </div>
    </body>
</html>

ご回答ありがとうございます

4

2 に答える 2

2

初期化後にソースを変更する場合は、ソースを再設定する必要があるため、Load 関数は次のようになります。

 function Load(){
            data =  ["luis","dj","jon","les","jimmy"];
           $('#autocomp').autocomplete("option","source",data);
 }

jsfiddle とデモ

于 2012-09-05T03:08:22.430 に答える
2

<body onload="Load()"> jquery の .ready() または Load() を使用します。両方を行うと、発生する時期が異なるため、混乱するだけです。.ready のドキュメントでは、両方を使用することはお勧めできないと述べており、最初の 2 つの段落では、それらが異なるタイミングで発生することをさらに説明しています。

オートコンプリートのドキュメント には、変更した場合はデータ リストをリセットする必要があると記載されています。

そうは言っても、onload または .ready() が必要かどうかを決定し、そこにデータリスト変数を設定します:)

$(document).ready(function(){
  if(!data){
data = ["Luis","DJ","Jon","Les","Jimmy"];
}
 $("#autocomp").autocomplete({
   source: data
   });
});
于 2012-09-05T03:10:44.187 に答える