jQuery“$ 不是函数”错误

Eam*_*ley 2 javascript jquery

我发誓我已经在页眉中包含了 jquery,它就在那里!

尽管如此,我已经包含在页面底部附近(现在是内联的)的以下代码给了我一个错误,指出“TypeError:$ 不是函数”。

<script>
        function displayResult(longA, latA, longB, latB, units) {
            $("#distance").html(calcDist(longA, latA, longB, latB, units));
            if (units=="m") {
                $("#unitLabel").html("miles");
                $("units").prop("selectedIndex",0);
            } else {
                $("#unitLabel").html("kilometers");
                $("#units").prop("selectedIndex",1);
            }
            $("#longA").val(longA);
            $("#latA").val(latA);
            $("#longB").val(longB);
            $("#latB").val(latB);
        }

        $("#calculateButton").click(function() { //This is the line it's complaining about
            var longA=$("#longA").val();
            var latA=$("#latA").val();
            var longB=$("#longB").val();
            var latB=$("#latB").val();
            var units=$("#units").val();
            displayResult(longA, latA, longB, latB, units);
        })(jQuery);
    </script>
Run Code Online (Sandbox Code Playgroud)

在页眉的更高处,我有以下内容:

<script src="jquery.js" ></script>
<script src="calcDistSinglePage.js" ></script>
Run Code Online (Sandbox Code Playgroud)

我没有使用 Wordpress 或任何东西,这是一个非常简单的手工编码 HTML 页面。

Har*_*old 5

尝试将您的代码包装在一个闭包中(无论如何这被认为是一种很好的做法):

(function($) {
    $("#calculateButton").click(function() {
      // do stuff...
    });
}(jQuery));
Run Code Online (Sandbox Code Playgroud)

如果这个片段仍然抱怨同样的错误,那么你加载 jQuery 库的方式肯定有问题。

另外,请确保不要覆盖$其他代码中的变量。例如,内部calcDistSinglePage.js

美元符号是一个非常简单的 javascript 变量,可以重新分配给您想要的任何东西。根据错误,$当前是某物不是函数(否则您会收到一个 ReferenceError 说明$未定义)。所以很可能,在你的代码的某个地方,你已经覆盖了它。