JavaScript/jQuery - "$ не определено - ошибка $function()"
Я пытаюсь запустить функцию JavaScript/jQuery, и Firebug получает ошибку:
$ is not defined $(function()".
Код JavaScript находится внутри файла с именем core.js
и на него ссылается index.php
. В чем причина этой ошибки?
JavaScript:
<script type="text/javascript">
var formObject = {
run : function(obj) {
if (obj.val() === '') {
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
} else {
var id = obj.attr('id');
var v = obj.val();
jQuery.getJSON('/mod/update.php', { id : id, value : v }, function(data) {
if (!data.error) {
obj.next('.update').html(data.list).removeAttr('disabled');
} else {
obj.nextAll('.update').html('<option value="">----</option>').attr('disabled', true);
}
});
}
}
};
$(function() {
$('.update').live('change', function() {
formObject.run($(this));
});
});
</script>
PHP/HTML
<html>
<select name="main" id="category" class="update">
<option value="">Select one</option>
<? if (!empty($list)) { ?>
<? foreach($list as $row) { ?>
<option value="<?php echo $row['id']; ?>">
<? echo $row['name']; ?>
</option>
<? } ?>
<? } ?>
</select>
</html>
Ответы
Ответ 1
Вы, должно быть, не сделали jQuery доступным для своего скрипта.
Добавьте это в начало вашего файла:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
Эта проблема связана с тем, что файл jQuery/JavaScript неправильно добавлен в файл PHP/JSP/ASP. Это выходит и получает код JQuery из источника. Вы можете скачать его и ссылаться на него локально на сервере, что будет быстрее.
Или можно напрямую связать его с jQuery, GoogleCDN или MicrosoftCDN.
Как добавить JQuery на свою веб-страницу
Ответ 2
Try:
(function($) {
$(function() {
$('.update').live('change', function() {
formObject.run($(this));
});
});
})(jQuery);
Используя этот способ, вы гарантируете, что глобальная переменная jQuery будет привязана к "$" внутри закрытия. Просто убедитесь, что jQuery правильно загружен на страницу, вставив:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
Заменить " http://code.jquery.com/jquery-1.7.1.min.js" на путь, где ваш источник jQuery находится в контексте страницы.
Ответ 3
Вам нужно включить библиотеку jQuery на свою страницу.
Вы можете загрузить jQuery здесь и разместить его самостоятельно или вы можете ссылаться на внешний источник, например, от Google или Microsoft.
Google:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
от Microsoft:
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js">
Ответ 4
Это может быть полезно кому-то:
Если у вас уже есть jQuery, но все равно получите эту ошибку, проверьте, что вы включили jQuery перед js, который его использует, особенно если вы используете @RenderBody() в ASP.NET С#
Вы должны включить jQuery перед @RenderBody(), если вы включите js внутри представления, которое вызывает @RenderBody().
Ответ 5
Включите jquery.js, и если он включен, загрузите его перед любым другим кодом JavaScript.
Ответ 6
Я решил это следующим образом.
import $ from 'jquery';
(function () {
// ... code let script = $(..)
})();
Ответ 7
Я использую Asp.Net Core 2.2 с MVC и Razor cshtml
На мой JQuery ссылаются на странице макета
Мне нужно было добавить следующее в мой view.cshtml:
@section Scripts {
$script-here
}