我发誓我在页眉中包含了 jquery,它就在那里!
尽管如此,我在页面底部附近包含的以下代码(现在是内联代码)给我一个错误提示“TypeError: $ is not a function.”
<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>
在页眉的上方,我有以下内容:
<script src="jquery.js" ></script>
<script src="calcDistSinglePage.js" ></script>
我没有使用 Wordpress 或任何东西,这是一个非常简单的手工编码 HTML 页面。
最佳答案
尝试将您的代码包装在一个闭包中(无论如何这被认为是好的做法):
(function($) {
$("#calculateButton").click(function() {
// do stuff...
});
}(jQuery));
如果此代码段仍然报出同样的错误,那么您加载 jQuery 库的方式肯定有问题。
此外,请确保您没有覆盖其他代码中的 $
变量。例如,在 calcDistSinglePage.js
中。
美元符号是一个非常直接的 javascript 变量,可以重新分配给任何你想要的。根据错误,$
当前是某物 但不是 一个函数(否则您会收到一个 ReferenceError 指出 $
未定义)。所以很可能,在您的代码中的某个地方,您已经覆盖了它。
关于javascript - jQuery "$ is not a function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29637762/