JavaScript / jQuery - “$ is not defined- $ function()”错误

时间:2012-05-28 03:50:02

标签: javascript jquery

我正在尝试运行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>

8 个答案:

答案 0 :(得分:55)

您不能让jQuery可用于您的脚本。

将其添加到文件顶部:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>

此问题与未正确添加到PHP / JSP / ASP文件的jQuery / JavaScript文件有关。这样就可以从源代码中获取jQuery代码。你可以下载它并在服务器上本地引用它会更快。

或者任何一个都可以直接将其链接到jQuery或GoogleCDN或MicrosoftCDN。

How do add jQuery to your webpage

答案 1 :(得分:6)

尝试:

(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源在页面上下文中所在的路径。

答案 2 :(得分:3)

您需要在页面上包含jQuery库。

您可以download jQuery here自行托管,也可以从Google或Microsoft等外部来源链接。

谷歌的:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>

微软:

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.6.2.min.js">

答案 3 :(得分:2)

这可能对某人有用:

如果您已经获得了jQuery但仍然遇到此错误,请检查您在使用它的js之前是否包含jQuery,特别是如果您在ASP.NET C#中使用@RenderBody()

如果在@RenderBody()调用的视图中包含js,则必须在@RenderBody()之前包含jQuery。

答案 4 :(得分:1)

包括jquery.js,如果包含它,请在任何其他JavaScript代码之前加载它。

答案 5 :(得分:0)

我已经解决了以下问题。

import $ from 'jquery';

(function () {
    // ... code let script = $(..)
})();

答案 6 :(得分:0)

我将Asp.Net Core 2.2与MVC和Razor CSHTML一起使用 在布局页面中引用了我的JQuery 我需要在view.cshtml中添加以下内容:

@section Scripts {
$script-here
}

答案 7 :(得分:0)

如果在添加jquery之前尝试在 electron 应用中使用jquery,则应将其添加到模块中:

<script>
    if (typeof module === 'object') {
        window.module = module;
        module = undefined;
    }
</script>
<script src="js/jquery-3.5.1.min.js"></script>