未捕获的ReferenceError:$未定义shapefile

时间:2016-04-04 13:47:08

标签: javascript jquery html openlayers shapefile

是的,我已经看到很多关于这个问题的线索,但我的问题仍未得到解决。我首先在脚本的顶部加载了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");
            });

任何可能出错的想法

2 个答案:

答案 0 :(得分:1)

作为一种练习,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>
....
....

答案 1 :(得分:0)

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

您可以尝试以下两种方法之一:

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

// or

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