2016-04-20 9 views
1

バインディングドロップダウンが表示されていますがドロップダウンリストから項目を選択してもオートコンプリートコントロールにバインドしています未捕捉RangeError:Javascript/Jqueryでオートコンプリートをマウスオーバーすると、最大コールスタックサイズが超過し、オートコンプリートドロップダウンが発生する

となりました。また、オートコンプリートのドロップダウンにマウスを重ねると、ドロップダウンが閉じています。ここで私のコードを証明しています。私が間違ったところで電話してください。

HTMLコード:

<div style="width: 25%; display: inline-block;" data-bind="foreach: TaskList" id="dvmotherboardsearch"> 
    <input style="width: 100%" type="text" id="search" data-bind="value: name, autoComplete: { label: name, value: id }" class="gray search" /> 
</div> 

JSファイル:

self.memumorysearchlist = function (data, event) { 
     motherbord.length = 0; 
     var manufactureUrl; 
     selectManufacturer = $('#manufacturer').val(); 
     selectChiplist = $('#model').val(); 
     if (selectManufacturer !== "" && selectChiplist !== "") 
      manufactureUrl = "https://api.pcpartpicker.com/api/2015.1/part/category/list/?apikey=5612661951b24c58979b7bb372c2a1f0809e2dc9&part_type=motherboard" + "&m=" + selectManufacturer + "&c=" + selectChiplist;    
     $.ajax({ 
      url: "services/MemoryFinderDataProvider.asmx/PcPartpickerList", 
      type: "POST", 
      data: "{ 'partlisturl' : '" + manufactureUrl + "'}", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      error: function (data) { 

      }, 
      success: function (data) { 
       var obj; 
       var xmlDoc = $.parseJSON(data.d); 
       var xml1 = $(xmlDoc.parts); 
       for (var i = 0; i < xml1.length; i++) { 
        obj = {}; 
        obj['label'] = xml1[i].name; 
        obj['value'] = xml1[i].slug; 
        motherbord.push(obj); 
       } 
       $("#search").autocomplete({ 
        source: motherbord, 
        minLength: 0, 
       }).focus(function() { 
        $(this).autocomplete("search", ""); 
       }); 
       $(document).ready(function() { 
        $("#search").autocomplete("search", ""); 
       });     
      } 

     }); 
     $('#ui-id-1').css('height', '400px'); 
     $('#ui-id-1').css('overflow', 'scroll');    
    } 
+1

質問は不明です。最初に、コードには多すぎるコードと小さすぎるコードが含まれています。あまりにも多くのことがあります。何かのものがありますが、それはおそらく問題自体に無関係です。あまりにも少ない、なぜならそれは再現するのに十分ではないからです。いくつかの根本原因の分析を自分で行い、コードをトリムして(そしていくつか追加して)[mcve]を取得し、質問を更新してください。 – Jeroen

+0

@Jeroen今更新された質問を見る –

+0

あなたはほとんど何も変えていない!あなたは私のコメントとその中のリンクを読んだことさえありましたか? – Jeroen

答えて

1

私は$(ドキュメント).ready(関数(中self.memumorysearchlistの終わりに

$("#search").autocomplete({ 
        source: motherbord, 
        minLength: 0, 
       }).focus(function() { 
        $(this).autocomplete("search", ""); 
       }); 

を書いていました){});

となりました。

関連する問題