1

したがって、オートコンプリートのソースは次のようにたくさんあります。

var search1 = [{
    search: "authors1"
}, {
    search: "autocomplete1"
}, {
    search: "automatic1"
}];
var search2 = [{
    search: "authors2"
}, {
    search: "autocomplete2"
}, {
    search: "automatic2"
}];
var search3 = [{
    search: "authors3"
}, {
    search: "autocomplete3"
}, {
    search: "automatic3"
}];  

データを異なる配列に格納する必要があるため、それらに参加するように提案しないでください。
HTML:

<input data-source="search1,search2,search3" type="text" value="" />
<div id="loadingmsg" style="display:none">Searching...</div>  

「data-source」属性で指定されたすべてのソースを経由して、結果を1つのメニューに追加する再帰関数が必要です。たとえば、「auth」と入力すると、次のように表示されます。

  1. #loadingmsg自分自身を明らかにします。
  2. 結果のメニュー(「authors1」、「authors2」、「authors3」を含む)が表示されます。
  3. #loadingmsg消えます。
    出来ますか?
4

1 に答える 1

0

<input data-source="1,2,3" />

//bind a response to typing for each of these inputs
$("img[data-source]").on('keyup', function () {

   //get typed value
   var value = $(this).val();

   //clear the current menu
   $("#menu").empty();

   //show loading image (probably ineffective)
   $("#loadingimg").show();

   //iterate over source keys acquired from <input> data
   $.each($(this).data('source').split(','), function () {

      //iterate over corresponding object in `search`
      $.each(search[this], function () {

         //typed value matches string
         if (this.indexOf(value) > -1) {
            $("#menu").append('<span>' + this + '</span>');
         }
      });
   });
   $("#loadingimg").hide();
});
于 2013-01-17T03:12:08.330 に答える