1

很抱歉问这个问题,因为这是关于 Microsoft JScript 运行时错误的多次询问:'$' is undefined error。我有我的最后一个项目使用 jquery,当我将我的代码/.js 复制到新项目时,我收到了这个错误。

我知道当 .js 未在 head 标签上引用时会发生此错误,但我确信我在我的母版页上引用了我的 .js。

当我尝试运行开发人员工具(F12)并检查脚本是否已加载时,显示此错误

<html>
<head>
    <title>The resource cannot be found.</title>
    <style>
        body { font-family: "Verdana"; font-weight: normal; font-size: .7em; color: black; }
        p { font-family: "Verdana"; font-weight: normal; color: black; margin-top: -5px; }
        b { font-family: "Verdana"; font-weight: bold; color: black; margin-top: -5px; }
        H1 { font-family: "Verdana"; font-weight: normal; font-size: 18pt; color: red; }
        H2 { font-family: "Verdana"; font-weight: normal; font-size: 14pt; color: maroon; }
        pre { font-family: "Lucida Console"; font-size: .9em; }
        .marker { font-weight: bold; color: black; text-decoration: none; }
        .version { color: gray; }
        .error { margin-bottom: 10px; }
        .expandable { text-decoration: underline; font-weight: bold; color: navy; cursor: hand; }
    </style>
</head>
<body bgcolor="white">
    <span>
        <h1>
            Server Error in '/' Application.<hr width="100%" size="1" color="silver">
        </h1>
        <h2>
            <i>The resource cannot be found.</i>
        </h2>
    </span><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><b>Description: </b>HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
        <br>
        <br>
        <b>Requested URL: </b>/Pages/Scripts/jquery-1.7.2.js
        <br>
        <br>
        <hr width="100%" size="1" color="silver">
        <b>Version Information:</b>&nbsp;Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 </font>
</body>
</html>
<!-- 
[HttpException]: File does not exist.
   at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
   at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
   at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
-->

但是,当我使用工作 jquery(具有相同文件夹结构的相同 .js 版本)运行我以前的项目时,这就是我点击开发人员工具时显示的内容

/*!
 * jQuery JavaScript Library v1.7.2
 */

(function( window, undefined ) {

// Use the correct document accordingly with window argument (sandbox)
var document = window.document,
    navigator = window.navigator,
    location = window.location;
var jQuery = (function() {
// Define a local copy of jQuery
var jQuery = function( selector, context ) {
      // The jQuery object is actually just the init constructor 'enhanced'
      return new jQuery.fn.init( selector, context, rootjQuery );
    },
    //Etc etc.............

这是我的标记代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
    <title>EDI Service</title>
    <link href="../Contents/Styles/Site.css" rel="stylesheet" type="text/css" />
    <script src="../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="../Scripts/jquery.blockUI.js" type="text/javascript"></script>
    <script src="../Scripts/jquery-1.7.2.js" type="text/javascript"></script>
    <asp:contentplaceholder id="HeadContent" runat="server">
    </asp:contentplaceholder>
    <script type="text/javascript">
        //MENU HIDE/SHOW TOGGLE
        function hideMenu() {
            var elem = document.getElementById('menu'); elem.style.display = 'none';
        }
        function showMenu() {
            var menu = document.getElementById('menu'); menu.style.display = 'block';
            var contents = document.getElementById('div-contents'); contents.style.display = 'block';
        }
    </script>
</head>

任何形式的帮助将不胜感激。

4

1 回答 1

1

请确保脚本文件的路径正确。因为 ../Script/jquery-1.4.1.min.js 意味着您的脚本文件在层次结构之外存在于比您的页面多 2 个级别。

例如。

  1. 首先让我们假设项目结构

    • 解决方案->项目->脚本
    • 解决方案->项目->Default.aspx

    比您的页面和脚本文件夹在层次结构中处于同一级别。所以路径必须是 “Script/jquery-1.7.2.min.js”

  2. 现在假设这个项目结构

    • 解决方案->项目->脚本
    • 解决方案->项目->默认->Default.aspx

    因为这里的脚本文件夹是层次结构的上一级。所以在 Default.aspx 上添加脚本的路径必须是“./Script/jquery-1.7.2.min.js”

因此,在访问项目文件的路径时要小心。

于 2013-06-19T11:22:27.577 回答