2016-07-27 10 views
5

Próbuję użyć Materialize.css autocomplete z moim projektem Polymer.Autouzupełnianie Materialize.css nie działa z Polymer

Konsola Log:

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

mój kod:

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

Scenariusz:

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

Czy ładujesz zmaterializowany skrypt JavaScript w swoim kodzie HTML? Zobacz http://materializecss.com/getting-started.html –

+0

Występuje w tym samym numerze –

+0

Powinieneś przeczytać [TypeError: "x" nie jest funkcją] (https://developer.mozilla.org/en -US/docs/Web/JavaScript/Dokumentacja/Błędy/Not_a_funkcja) – Liam

Odpowiedz

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

Proszę wyjaśnić swoją odpowiedź – Liam

+1

wstaw autouzupełnianie w funkcji jquery –

+1

@Liam Miałem ten sam problem, to jest dla mnie poprawna odpowiedź. Powodem jest to, że plik materialize.js ładuje plugin autouzupełniania wewnątrz bloku $ (document) .ready, więc jeśli spróbujesz użyć autouzupełniania przed załadowaniem dokumentu, nie zostanie on zdefiniowany. Miałem ten sam problem z żetonami (plugin material_chip), który z kolei użyje autouzupełniania, jeśli zostanie określony. –

0

Upewnij się ładuje najnowszy plik materialize.js. Miałem starszą wersję, w której wtyczka autouzupełniania nie znajdowała się w JS i zgłaszał ten sam błąd. Odszedł po aktualizacji. Jednak nadal nie mogę uruchomić autouzupełniania. :(

0

mój obejście:

Funkcja kopiowania:

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

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

options = $.extend(default 

(...) 

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

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

z materialize.js (linia numer ~ 3000) lub z /js/forms.js plików źródłowych (numer linii ~ 281)

usuń ostatnia linia:

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

to closin Funkcja g rozpoczęła się jeszcze przed ...

i umieścić go recznie w ciele funkcji JavaScript

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

wpadłem na podobny problem z zareagować. Jeśli wykonam kod w jquery, wydaje się, że działa.

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

Mój problem został rozwiązany poprzez obniżenie moją wersję jQuery 2.1.4 jak wykorzystuje Materialise CSS.

+0

Pamiętaj, że nie jest to wyraźnie określone w dokumentacji. Kolejny powód do zatrzymania zależności bibliotek. – Aernor

Powiązane problemy