TypeError: 'undefined' is not a function (evaluating '$(document)')

  1. używam witryny WordPress.
  2. włączam ten skrypt do nagłówka.

Kiedy skrypt się ładuje, dostaję ten błąd:

TypeError: 'undefined' is not a function(evaluating '$(document)')

Nie mam pojęcia, co to powoduje, ani co to w ogóle znaczy.

W firebug rozumiem to:

$ nie jest funkcją

Author: Mihriban Minaz, 2011-11-02

14 answers

WordPress domyślnie używa jQuery w trybienoConflict . Musisz odwołać się do niej używając jQuery jako nazwy zmiennej, a nie $, np. użyj

jQuery(document);

Zamiast

$(document);

Możesz łatwo zawinąć to w samoczynnie wykonującą się funkcję, Aby $ ponownie odwoływało się do jQuery( i unikało zanieczyszczania globalnej przestrzeni nazw), np.

(function ($) {
   $(document);
}(jQuery));
 239
Author: El Yobo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-29 00:20:31

Użyj jQuery ' S noConflict. To czyni cuda dla mnie

var example=jQuery.noConflict();
example(function(){
example('div#rift_connect').click(function(){
    example('span#resultado').text("Hello, dude!");
    });
});

To znaczy, zakładając, że umieściłeś jQuery w HTML

<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 27
Author: Leno Britto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-12 20:59:32

Użyj tego:

var $ =jQuery.noConflict();
 15
Author: Suman Biswas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-09 11:34:16

Spróbuj tego fragmentu:

jQuery(function($) {
  // Your code.
})
U mnie zadziałało, może tobie też pomoże.
 11
Author: Gurpreet Dhanoa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-04 22:46:53

[[2]] miałem ten problem tylko na Chrome.

Próbowałem dodać

var $ =jQuery.noConflict();

Tuż przed wywołaniem

$(document).ready(function () {
Zadziałało.

Wielkie dzięki

 11
Author: Le_Dhul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-11 11:15:05

Sprawdź również, czy jQuery Zawiera, a następnie niektóre komponenty/inne biblioteki (takie jak jQuery UI), a następnie ponownie przypadkowo włącza jQuery - to zmieni definicję jQuery i upuści pomocników komponentów (jak .datepicker) poza instancją.

 6
Author: agrath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-15 00:34:12
 ;(function($){
        // your code
    })(jQuery);

Umieść kod js wewnątrz zamknięcia powyżej, powinno to rozwiązać problem.

 4
Author: Bikram Shrestha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-19 10:41:05

Użyłbym tego

(function ($) {
   $(document);
}(jQuery));
 4
Author: JoT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-19 15:35:04

Ja również borykałem się z takimi problemami wiele razy w Web develoment carrier. W rzeczywistości nie jest to konflikt JS, gdy ładujemy stronę html do przeglądarki nie napotykamy takiego błędu, ale gdy ładujemy tego typu stronę przez localhost napotykamy taki problem. To z powodu localhost. Gdy wczytywamy Skrypty przez localhost, skanuje on skrypt i renderuje wyjście. Ale kiedy nie korzystaliśmy z localhost. Skanuje tylko wyjście. Przykład, kiedy piszemy kod php umieszczamy localhost i uruchamiamy bez hosta dostajemy błąd. Ale jeśli kod jest poprawny i jest uruchamiany przez host, otrzymujemy rzeczywiste wyjście, a gdy użyjemy elementu inspect, otrzymujemy kod wyjściowy w formacie HTMl, ale nie w formacie PHP, jest to spowodowane renderowaniem kodu.

To jest błąd renderowania. Aby naprawić ten błąd kodu jquery, jedno z rozwiązań może używać tej metody.

jQuery(document).ready(function($){
/******** Body of Jquery Code*****/
});

Kod ten rejestruje ' $ ' jako zmienną funkcji poprzez zastosowanie jquery. Else domyślnie the .plik js jest odczytywany tylko jako javascript.

 2
Author: Rajan Lama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-18 16:36:41

Napotkałem ten problem również podczas włączania jQuery do nagłówka mojej strony, nie zdając sobie sprawy, że host już włączył go do strony automatycznie. Załaduj swoją stronę na żywo i sprawdź źródło, aby sprawdzić, czy jQuery jest połączone.

 1
Author: FrostyL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-05 12:27:45

Dwie rzeczy:

  1. Upewnij się, że masz dodaną bibliotekę jQuery przed $(document).
  2. Następnie po prostu zmień wszystkie " $ " z: jQuery, jak w poprzednich komentarzach.
 1
Author: Jorge Alejandro Inturias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-10 22:41:44

Zawiń cały skrypt między tym...

<script>
    $.noConflict();
    jQuery( document ).ready(function( $ ) {
      // Code that uses jQuery's $ can follow here.
    });
</script>

Wiele bibliotek JavaScript używa $ jako nazwy funkcji lub zmiennej, tak jak robi to jQuery. W przypadku jQuery, $ jest tylko aliasem dla jQuery, więc wszystkie funkcje są dostępne bez użycia $. Jeśli chcesz użyć innej biblioteki JavaScript obok jQuery, zwróć kontrolkę $ back do innej biblioteki wywołując $.noConflict () . Stare referencje $ są zapisywane podczas inicjalizacji jQuery; noConflict () po prostu je przywraca.

 1
Author: Jitendra Damor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-15 04:49:38

Możesz użyć zarówno jQuery jak i $ in poniżej. to działało dla mnie

jQuery( document ).ready(function( $ ) {
  // jQuery(document)
  // $(document)
});
 1
Author: Kalpesh Prajapati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-20 11:21:07

Możesz przekazać $ w funkcji ()

jQuery(document).ready(function($){

// jQuery code is in here

});

Lub możesz zastąpić $(document); tym jQuery(document);

Lub możesz użyć jQuery.noConflict()

var jq=jQuery.noConflict();
jq(document).ready(function(){  
  jq('selector').show();
});
 1
Author: Ganesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-07 12:51:49