$ (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>
Ответы
Ответ 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 был вызван.