未捕获的ReferenceError:$不是定义的形状文件

Uncaught ReferenceError: $ is not defined shapefile

本文关键字:定义 文件 ReferenceError      更新时间:2023-12-06

没错,我已经看到了很多关于这个问题的线程,但我的问题仍然没有解决。我在脚本的顶部首先加载了J查询。像这样:

<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" runat="server"> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.12/OpenLayers.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script src="/Scripts/shapefile.js"></script>
<script src="http://svn.osgeo.org/metacrs/proj4js/trunk/lib/proj4js-compressed.js"></script>
<script src="http://spatialreference.org/ref/epsg/27700/proj4js/"></script>
<script src="/Scripts/WebForms/map.js"></script>
<script src="/Scripts/dbf.js"></script>
<script src="/Scripts/stream.js"></script>     
<script src="Scripts/bootstrap.min.js"></script>

我有两个使用Jquery的javascript文件,但只有map.js可以使用它,并且定义了$。然而,在shapefile.js中,当我使用$时,它并没有被定义。我很困惑。下面是shapefile.js 的代码

$(document).ready(function () {
                $("#SHPError").modal("show");
            });

任何可能出错的想法

作为一种实践,jQuery应该被添加为最顶端的脚本。这可能是个问题。如果OpenLayer是一个jQuery库。

<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" runat="server">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/openlayers/2.12/OpenLayers.min.js"></script>
<script src="/Scripts/shapefile.js"></script>
<script src="http://svn.osgeo.org/metacrs/proj4js/trunk/lib/proj4js-compressed.js"></script>
....
....

如果包含jQuery,并且请求没有抛出404或其他HTTP错误(请检查控制台),那么很可能存在jQuery对象,但没有$

你可以试试其中一种:

jQuery(document).ready(function ($) {
    $("#SHPError").modal("show");
});
// or
jQuery(document).ready(function () {
    jQuery("#SHPError").modal("show");
});