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

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>
4b9b3361

Ответ 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
}