1

Microsoft JScriptランタイム エラー: '$' は未定義のエラーです。jquery が動作する最後のプロジェクトがあり、code/.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

    ここのスクリプト フォルダーは、階層が 1 レベル上にあるためです。したがって、スクリプトを追加する Default.aspx のパスは、「./Script/jquery-1.7.2.min.js」である必要があります。

したがって、プロジェクト ファイルのパスへのアクセスには注意してください。

于 2013-06-19T11:22:27.577 に答える