Kiedy używam DatePicker, wtyczki UI jQuery, na istniejącej stronie .aspx otrzymuję błędy, które:
$("#datepicker").datepicker is not a function
Jednak gdy kopiuję i wklejam ten sam kod, który tworzy i używa datePicker do pliku HTML, który również znajduje się w tym samym katalogu co strona aspx, działa bezbłędnie. To prowadzi mnie do założenia, że na stronie aspx znajdują się pliki JS, które uniemożliwiają prawidłowe załadowanie plików DatePicker lub być może plików JS interfejsu użytkownika jQuery.
Czy ktoś może potwierdzić moje przekonania lub udzielić wskazówek, jak znaleźć winowajcę, który zakłóca działanie wtyczek interfejsu użytkownika jQuery?
asp.net
javascript
jquery
datepicker
spalony
źródło
źródło
Odpowiedzi:
Z podobnym problemem zmagałem się godzinami. Okazało się wtedy, że jQuery zostało dołączone dwukrotnie, raz przez program, do którego dodawałem funkcję jQuery i raz przez nasz wewnętrzny debugger.
źródło
Jeśli istnieje inna biblioteka, która używa zmiennej $, możesz to zrobić:
Upewnij się również, że dołączenia javascript są w odpowiedniej kolejności, tak aby podstawowa biblioteka jquery została zdefiniowana przed jquery.ui. Miałem problemy z tą przyczyną.
źródło
Ten błąd pojawia się zwykle, gdy brakuje pliku z zestawu interfejsu użytkownika jQuery.
Dokładnie sprawdź, czy masz wszystkie pliki, pliki interfejsu użytkownika jQuery, a także CSS i obrazy, i czy znajdują się one w prawidłowo połączonej lokalizacji pliku / katalogu na serwerze.
źródło
jQuery „$ (” # datepicker ”). datepicker nie jest funkcją”
Rozwiązałem ten problem, umieszczając poniższe trzy pliki w sekcji treści formularza na końcu.
źródło
Jeśli uważasz, że istnieje konflikt, możesz użyć go
jQuery.noConflict()
w swoim kodzie. Szczegóły w dokumentacji .To od końca dokumentacji i może ci się przydać
źródło
Wybierzmy najpierw oczywiste: czy dobrze odwołujesz się do pliku jquery-ui.js?
Spróbuj użyć karty sieciowej programu firebug, aby dowiedzieć się, czy jest załadowana, lub informacji \ Wyświetl kod javascript paska narzędzi Web Developer Toolbar.
źródło
Czy próbowałeś użyć Firebuga, aby 1) ustalić, że nie ma błędów JavaScript i 2) że na stronie istnieje element #datepicker?
Najprawdopodobniej wystąpił błąd przed wywołaniem datepicker, który uniemożliwia wykonanie wywołania datepicker.
źródło
Wiem, że ten post jest dość stary, ale dla odniesienia naprawiłem ten problem, aktualizując wersję Datepicker
Warto też tego spróbować, aby uniknąć godzin debugowania.
https://cdnjs.com/libraries/bootstrap-datepicker
źródło
Właśnie miałem ten problem i przesunąłem referencje JS i kod na dół strony, zanim
</body>
tag naprawił to za mnie.źródło
Sprawdź także uprawnienia do katalogu, do którego pobierasz pliki. Z jakiegoś powodu, kiedy to pobrałem, domyślnie zostało zapisane w folderze bez dostępu! Wieki zajęło mi ustalenie, że to był problem, ale musiałem tylko zmienić uprawnienia do katalogu i jego zawartości - ustawiając go tak, aby WSZYSCY = TYLKO ODCZYT. Teraz działa świetnie.
źródło
Niedawno napotkałem ten problem - problem polegał na tym, że umieściłem pliki interfejsu użytkownika jQuery w tagu head, ale biblioteka Telerik, której używałem, zawierała jQuery na dole tagu body (w ten sposób najwyraźniej ponownie zainicjowałem jQuery i wyładowałem interfejs użytkownika wtyczki załadowane wcześniej).
Rozwiązaniem było ustalenie, gdzie faktycznie jest dołączane jQuery, a następnie włączenie skryptów interfejsu użytkownika jQuery.
źródło
Właśnie napotkałem podobny problem. Kiedy zmieniłem odwołanie do skryptu z samozamykających się tagów (tj.
<script src=".." />
) Na puste węzły (tj.<script src=".."></script>
), Moje błędy zniknęły i mogłem nagle odwołać się do funkcji interfejsu użytkownika jQuery.Wtedy nie zdawałem sobie sprawy, że to tylko pierdnięcie w mózgu, że nie zamknąłem go właściwie. (Publikuję to po prostu na wypadek, gdyby ktoś inny napotkany w wątku miał podobny problem.)
źródło
Niektóre pliki nie są ładowane, zanim zadzwonisz.
Na przykład: Twój kod:
Zmień na to:
źródło
Mogę rozwiązać ten problem, usuwając pakiet jquery w pliku _Layout.cshtml
nagłówek
Stopka
Zmień stopkę na
źródło
Czy próbowałeś użyć $ ("# <% = txtDateElementId.ClientID%>"). Datepicker (); zamiast $ ("# txtDateElementId"). datepicker (); podczas wybierania elementu według identyfikatora za pomocą JQuery.
źródło
W moim przypadku zostało to rozwiązane poprzez zmianę kolejności importu następujących skryptów: Przed (Nie działa):
Po pracy):
źródło