2016-07-27 63 views
5

我正嘗試在我的Polymer項目中使用Materialize.css autocompleteMaterialize.css自動完成功能不能與聚合物一起使用

控制檯登錄:

Uncaught TypeError: $(...).autocomplete is not a function 

我的代碼:

<div class="input-field"> 
    <input type="text" id="assemp" class="autocomplete" value="{{emps::input}}"> 
    <label for="assemp">Assigned Employee(s)</label> 
</div> 

腳本:

attached : function() { 
      $('input.autocomplete').autocomplete({ 
       data: { 
        "Apple": null, 
        "Microsoft": null, 
        "Google": 'http://placehold.it/250x250' 
       } 
      }); 
     } 
+0

你在HTML中加載物化JavaScript腳本嗎?請參閱http://materializecss.com/getting-started.html –

+0

我遇到了同樣的問題 –

+0

您應該閱讀[TypeError:「x」不是函數](https://developer.mozilla.org/en -US/docs/Web/JavaScript/Reference/Errors/Not_a_function) – Liam

回答

5
$(document).ready(function() {$('input.autocomplete').autocomplete({ 
      data: { 
       "Apple": null, 
       "Microsoft": null, 
       "Google": null 
      }});}); 
+1

找到一個答案請解釋你的答案 – Liam

+1

把自動完成功能放在jquery功能 –

+1

@Liam我有同樣的問題,這是我的正確答案。原因是因爲materialize.js文件將自動完成插件加載到$(document).ready塊內,所以如果您在加載文檔之前嘗試使用自動完成,它將不會被定義。對於芯片(material_chip插件),我也有同樣的問題,如果指定,它將使用自動完成。 –

0

請確保您裝載最近materialize.js文件。我有一箇舊版本,其中自動完成插件不在JS中,並且拋出了相同的錯誤。我更新後離開。不過,我仍然無法獲得自動完成功能。 :(

0

我的解決辦法:

複印功能:

/************************** 
* Auto complete plugin * 
*************************/ 

$.fn.autocomplete = function (options) { 
// Defaults 
var defaults = { 
    data: {} 
}; 

options = $.extend(default 

(...) 

}); // End of $(document).ready (1) 

/******************* 
* Select Plugin * 
******************/ 

從materialize.js(行號〜3000) 或從源文件/js/forms.js (行號〜281 )

刪除最後一行:

}); // End of $(document).ready (1) 

它closin G功能開始更多更多...之前

,並把它manualy到你的JavaScript函數體

$(document).ready(function() { 
//paste it here 
}) 
1

我跑進與反應類似的問題。如果我在jQuery中執行代碼,它似乎工作。

$(() => { 
    $(...).autocomplete(); 
}); 
0

我的問題被降級我的jQuery版本V2.1.4爲Materialise的CSS使用解決。

+0

請注意,這並未在文檔中明確說明。停止庫依賴的另一個原因。 – Aernor