2012-08-07 6 views
0

보기 누군가 내가 잘못되었을 수 있음을 지적 할 수 있습니까? 내 문제는 내 견해에 일부 스크립트가 있고 jQuery 그냥 어떻게 든 작동하지 않습니다 (내 잘못 어딘가에) 보인다.jQuery가 ASP.NET MVC에서 작동하지 않습니다.

항상로드중인 레이아웃 페이지에 jQuery가 지정되어 있습니다. 그렇다면이 모양의 내 견해가 있습니다.

@model jakubholovsky.com.Models.BlogPost 
@using jakubholovsky.com.DataModels 
@using jakubholovsky.com.Enum 
@{ 
    ViewBag.Title = "Jakub Holovsky - Blog - Post - " + Model.Post.title; 
} 
<h2> 
    @Model.Post.title</h2> 
<div> 
SOME CODE 
</div> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     alert("hello"); 
     $('#addACommentDiv').click(function() { 
      alert("hello"); 
      if ($('#commentFieldset').is(':hidden')) { 
       $("#commentFieldset").slideDown("slow"); 
       $('#addACommentDivButton').html('Close commenting'); 
      } 
      else { 
       $("#commentFieldset").slideUp("slow"); 
       $('#addACommentDivButton').html('Comment on this article'); 
      } 
     }); 
    }); 
</script> 

제 생각에는 jQuery를 참조하려고했지만 행운은 없었습니다. 나는 또한 그것이 작동하는지 확인하기 위해 기본 자바 스크립트 (그냥 경고창)를 사용하려고 노력했다. 또한 jQuery가 브라우저에로드되었는지 확인했습니다 (있는 그대로).

경고 ("hello"); 선은 단지 준비 함수를 통과 하는지를보기 위해 존재합니다.

이것은 레이아웃 페이지에서 참조하는 방법입니다.

<head> 
    <meta charset="utf-8" /> 
    <title>@ViewBag.Title</title> 
    <link href="@Url.Content("/Content/Site.css")" rel="stylesheet" type="text/css" /> 
    <script src="@Url.Content("/Scripts/jquery-1.7.2.js")" type="text/javascript"></script> 
    <script src="@Url.Content("/Scripts/jquery-1.7.2-vsdoc.js")" type="text/javascript"></script> 
    <script src="@Url.Content("/Scripts/modernizr-2.5.3.js")" type="text/javascript"></script> 
    <script src="@Url.Content("/Scripts/google-analytics.js")" type="text/javascript"></script> 
</head> 

나를 도와 주셔서 감사합니다.

+0

HTML에 렌더링? –

+0

그리고 오류가 발생하지 않으면 인터넷 브라우저의 dev 도구를 통해 페이지를 실행하고 어떤 오류 메시지가 표시되는지 확인하십시오 –

답변

1

와일드 카드를 사용하여 스크립트를 선택할 수 있도록 번들링 기능을 사용하는 것이 좋습니다. 이것은 향후 스크립트의 버전 업그레이드에 도움이 될 것입니다. 오류가 당신이 얻고있는 무슨

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-1.*")); 

다음 레이아웃이나 어딘가에

@Scripts.Render("~/bundles/jquery") 
0

각 링크 앞에는 ~ 기호를 추가하십시오. 나는이 문제도 만났다. 또한 솔루션 탐색기에서 실제 js 파일을이 레이아웃 페이지로 드래그 해보십시오. 폴더 구조/경로가 올바른지 확인합니다.

마지막으로해야 할 일은 "../"과 같은 것을 사용하는 것입니다. 몇 번이나 부모 폴더를 사용해야할지에 따라 다릅니다.

희망이 있습니다.

+0

답장의 일부분이 잘못되었습니다. Url.Content는 웹 앱 루트 (~로 표시)에 상대적인 모든 경로를 만드는 데 사용됩니다. 그러나 그렇습니다 ~를 추가해야합니다. 다음에 Javascript 콘솔을 열어야합니다. 그런 종류의 실수는 당신의 얼굴을 콘솔로 바라 보게 될 것입니다. (Chrome에서는 F12, 플러그인이없는 IE에서는 Firefox와 F12를 설치할 때 Firebug를 설치하십시오.) – Pluc

+1

안녕하세요, 내 스크립트를 다음과 같이 참조하십시오 : 도움을! 나는 당신의 도움으로 그것을 해결해 주어서 너무 기쁩니다. 파일을 끌어서 놓기 만하면됩니다. 그것은 그렇게 이상한 것이기 때문에 그렇게해야합니다. –

관련 문제