Подтвердить что ты не робот

$ (document).ready(функция() не работает

Я использую JQuery для получения json-объекта с сервера solr. Когда я запускаю свой html файл с Tomcat, он отлично работает, но когда я вставляю его в свой проект, который работает в weblogic, он получает эту ошибку: (отладка выполняется через firebug)

$ is not defined
$(document).ready(function(){  

Почему я получаю эту ошибку, когда я вставляю ее в свой проект?

Это содержимое моего тега <head>. Вот как я включаю jquery.js:

<head>
  <title>Search Result  </title>
  <style>
    img{ height: 150px; float: left; border: 3;}
    div{font-size:10pt; margin-right:150px;
    margin-left:150px; }
  </style>

  <script type="text/javascript" src="jquery-1.6.1.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){       //Error happens here, $ is not defined.

    });
  </script>
</head>
4b9b3361

Ответ 1

Вы загрузили jQuery в разделе head? Вы правильно загрузили его?

<head>
   <script src="scripts/jquery.js"></script>
   ...
</head>

Этот код предполагает, что jquery.js находится в каталоге scripts. (Вы можете изменить имя файла, если хотите)

Вы также можете использовать jQuery размещенный Google:

<head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
   ...
</head>

Согласно вашему комментарию:

По-видимому, ваш веб-сервер не настроен на возврат jQuery-1.6.1.js при запросе /webProject/jquery-1.6.1.js. Для этого может быть множество причин, таких как неправильное имя файла, имя папки, параметры маршрутизации и т.д. Вам нужно создать другой вопрос и описать ваш 404 более подробно (например, имя локального файла, операционную систему, имя веб-сервера и настройки).

Опять же, вы можете использовать jQuery, как указано в Google (см. выше), однако вы все равно можете узнать, почему некоторые локальные файлы не получают по запросу.

Ответ 2

Я нашел, что нам нужно иногда использовать noConflict:

jQuery.noConflict()(function ($) { // this was missing for me
    $(document).ready(function() { 

       other code here....

    });
});

Из документов:

Многие библиотеки JavaScript используют $как имя функции или переменной, как это делает jQuery. В случае jQuery $ является просто псевдонимом для jQuery, поэтому вся функциональность доступна без использования $. Если вам нужно использовать другую библиотеку JavaScript вместе с jQuery, верните элемент управления $ обратно в другую библиотеку с вызовом $.noConflict(). Старые ссылки $ сохраняются во время инициализации jQuery; noConflict() просто восстанавливает их.

Ответ 3

Вы получаете эту ошибку только в том случае, если jQuery некорректно загружен, вы можете проверить с помощью firebug, что URL-адрес его пытается загрузить, чтобы вы могли видеть, неверен ли ваш относительный путь.

Кроме того, в отдельной заметке вы можете использовать $(function(){ как сокращенное обозначение $(document).ready(function(){

Ответ 4

Если у вас есть js файл, который ссылается на jquery, это может быть связано с тем, что файл js находится в теле, а не в главном разделе (это была моя проблема). Вы должны перенести свой файл js в раздел главы ПОСЛЕ ссылки jquery.js.

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js"></script>
    <script src="myfile.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>

Ответ 5

см. для вашего пути js, который может быть причиной... потому что вы получите эту ошибку только в том случае, если jQuery неправильно загружен.

Ответ 6

У меня такая же проблема... на http://www.xaluan.com.. но после журнала. Я узнаю, что после запуска jQuery я создаю функцию, используя один элемент id, который не существует.

Например:

$('#aaa').remove()  <span class="aaa">sss</spam> 

поэтому id="aaa" не существовало.. тогда jQuery перестает работать.. потому что такие ошибки

Ответ 7

Использование:

jQuery(document).ready(function($){
    // code where you can use $ thanks to the parameter
});

Или его более короткая версия:

jQuery(function($){
    // code where you can use $ thanks to the parameter
});

Ответ 8

У меня была эта проблема, и из-за меня я пытался включить jQuery через http, пока моя страница была загружена как https.

Ответ 9

У меня была такая же проблема в Chrome, где мои скрипты были такими:

<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js" />
<script>
...
$(document).ready(function() {
    ...
});
...
</script>

Когда я изменил на:

<script src="./scripts/jquery-1.12.3.min.js"></script>
<script src="./scripts/ol-3.15.1/ol.js"></script>

$(document).ready был вызван.