>

Jquery 함수를 수행하려고하면 모든 것이 올바르게 설정되어 있지만 브라우저 콘솔 로그에이 오류가 발생합니다

SCRIPT5009: 'jQuery' is not defined bootstrap.js (20,1)

HTML1300: Navigation occurred. 1 (1,1) 2 CSS3121: The media query -ms-viewport has been deprecated.

SCRIPT5009: SCRIPT5009: 'jQuery' is not defined bootstrap.js (21,1)

SCRIPT5009: SCRIPT5009: '$' is not defined SendEmail.js (1,1)

이것은 나의 스크립트/스타일입니다 :

@model Linkofy.Models.EmailAccount
@{
ViewBag.Title = "SendMail";
}
@section Styles {
<link href="@Url.Content("~/Styles/Edit.css")" rel="stylesheet" type="text/css" />
}
@section Scripts {
<script src="@Url.Content("~/Javascript/SendEmail.js")"></script>      
}

내 기능 (SendEmail.js) :

$("#templateName").on("change", function () {
var tempID = $(this).find('option:selected').val();
var url = "/Identifiers/TemplateData/" + tempID;
console.log()
$.ajax({
    type: "GET",
    dataType: "json",
    contentType: "application/json",
    url: url, // Variabel
    showLoader: true,
    success: test // Function
});
});
function test(data) {
data = $.parseJSON(data);
$('#subject').val(data.subject);
$('#body').val(data.body);
}

번들 :

   // For more information on bundling, visit https://go.microsoft.com/fwlink/?LinkId=301862
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery.js"));
        bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate"));
        // Use the development version of Modernizr to develop with and learn from. Then, when you're
        // ready for production, use the build tool at https://modernizr.com to pick only the tests you need.
        bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                    "~/Scripts/modernizr-"));
        bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));
        bundles.Add(new StyleBundle("~/Content/css").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/site.css"));
    }
}
}

이 파일의 텍스트를 채우지 않고 게시 할 수 없으므로 전체 레이아웃 파일은 다음과 같습니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - linkofy</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div class="navbar" style="background-color: LightSteelBlue;">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            @Html.ActionLink("Linkofy", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" })
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li>@Html.ActionLink("Domains", "Index", "Identifiers")</li>
                <li>@Html.ActionLink("Clients", "Index", "Clients")</li>
                <li>@Html.ActionLink("Links", "Index", "Links")</li>
                <li>@Html.ActionLink("Status", "Index", "Status")</li>
            </ul>
            @Html.Partial("_LoginPartial")
        </div>
    </div>
</div>
<div class="container body-content">
    @RenderBody()
    <hr />
    <footer>
        <p>&copy; @DateTime.Now.Year - Orb Online - Liam Cook</p>
    </footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
    @RenderSection("Styles", required: false)
</body>
</html>


  • 답변 # 1

    이 오류는 다음 세 가지 중 하나에 의해서만 발생할 수 있습니다 :

    <올>

    자바 스크립트 파일이 페이지에 제대로로드되지 않았습니다

    보텀 버전의 jQuery가 있습니다. 이것은 발생할 수 있기 때문에 누군가 핵심 파일을 수정했거나 플러그인이 $를 덮어 썼을 수 있습니다.     변수.

    페이지가 완전히로드되기 전에 JavaScript가 실행 중입니다. jQuery가 완전히로드되기 전에.

    파일이 실제로 제대로로드되었는지 Firebug net 패널을 확인해야합니다. 그렇지 않으면 빨간색으로 강조 표시되고 옆에 "404"라고 표시됩니다. 파일이 제대로로드되면 문제가 2 번임을 의미합니다.

    모든 jQuery 자바 스크립트 코드가 다음과 같은 코드 블록 내에서 실행되고 있는지 확인하십시오.

    $(document).ready(function () {
      //your code here
    });
    
    

    이것은 jQuery가 초기화 된 후에 코드가로드되도록합니다.

    확인해야 할 마지막 사항은 jQuery를로드하기 전에 플러그인을로드하지 않는지 확인하는 것입니다. 플러그인은 "$"객체를 확장하므로 jQuery 코어를로드하기 전에 플러그인을로드하면 설명 된 오류가 발생합니다.

    참고 :jQuery를 실행하지 않아도되는 코드를로드하는 경우 jQuery 준비 처리기 안에 넣을 필요가 없습니다. 해당 코드는

    와이즈 비즈

    레이아웃에서 헤더 태그 스크립트의 순서는 다음과 같아야합니다 :

    document.readyState

    <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" /> <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css" /> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

관련 자료

  • 이전 c++ - VS 코드의 디버그 오류
  • 다음 Javascript가 별도의 함수에서 호출되는 ajax 호출을 기다리도록 강제하는 방법