간단한 jquery 클릭 이벤트가 있습니다
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
site.master에 정의 된 jquery 참조
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
스크립트가 올바르게 해결되고 있는지 확인했습니다. 마크 업을보고 Firebug에서 직접 스크립트를 볼 수 있으므로 찾아야합니다. 그러나 나는 여전히 얻고있다 :
$가 정의되지 않았습니다
그리고 jquery가 작동하지 않습니다. 또한 $ (document) .ready 및 jQuery 등과 같은 다양한 변형을 시도했습니다.
.net 3.5의 MVC 2 앱입니다 .Google의 모든 곳에서 파일이 올바르게 참조되었는지 확인한다고 말하면 다시 확인하고 다시 확인하십시오. : /
답변
이 오류는 다음 세 가지 중 하나에 의해서만 발생할 수 있습니다.
- 자바 스크립트 파일이 페이지에 제대로로드되지 않았습니다
- 봇치 버전의 jQuery가 있습니다. 누군가 코어 파일을 편집했거나 플러그인이 $ 변수를 덮어 써서 발생할 수 있습니다.
- 페이지가 완전히로드되기 전에 그리고 jQuery가 완전히로드되기 전에 JavaScript가 실행 중입니다.
우선, 어떤 스크립트가 올바르게 호출되는지 확인하십시오.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
그리고 async 또는 defer 속성이 없어야합니다 .
그런 다음 Firebug net 패널을 검사하여 파일이 실제로 제대로로드되는지 확인해야합니다. 그렇지 않으면 빨간색으로 강조 표시되고 옆에 “404”라고 표시됩니다. 파일이 제대로로드되면 문제가 2 번임을 의미합니다.
모든 jQuery 자바 스크립트 코드가 다음과 같은 코드 블록 내에서 실행되고 있는지 확인하십시오.
$(document).ready(function () {
//your code here
});
그러면 jQuery가 초기화 된 후 코드가로드 됩니다.
마지막으로 확인해야 할 것은 jQuery를로드 하기 전에 플러그인 을로드 하지 않는지 확인하는 것 입니다. 플러그인은 “$”객체를 확장하므로 jQuery 코어를로드하기 전에 플러그인을로드하면 설명 된 오류가 발생합니다.
참고 : jQuery를 실행할 필요가없는 코드를로드하는 경우 jQuery 준비 핸들러 내에 배치 할 필요가 없습니다. 이 코드는을 사용하여 분리 될 수 있습니다 document.readyState
.
답변
jquery 스크립트가 호출되기 전에 스크립트 태그가 호출되었을 수 있습니다.
<script type="text/javascript" src="js/script.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
$가 정의되지 않은 결과
jquery.js를 스크립트 태그 앞에 넣으면 다음과 같이 작동합니다.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/script.js"></script>
답변
먼저 jQuery 스크립트가로드되어 있는지 확인해야합니다. CDN 또는 웹 사이트의 로컬 일 수 있습니다. jQuery를 사용하기 전에 이것을 먼저로드하지 않으면 jQuery가 정의되지 않았다는 메시지가 나타납니다.
<script src="jquery.min.js"></script>
이것은 HEAD 또는 페이지 바닥 글에있을 수 있습니다. 다른 jQuery를 호출하기 전에로드해야합니다.
그런 다음 아래 두 가지 솔루션 중 하나를 사용해야합니다.
(function($){
// your standard jquery code goes here with $ prefix
// best used inside a page with inline code,
// or outside the document ready, enter code here
})(jQuery);
또는
jQuery(document).ready(function($){
// standard on load code goes here with $ prefix
// note: the $ is setup inside the anonymous function of the ready command
});
여러 번 $ (document) .ready (function () {// code here}); 작동 안 할 것이다.
답변
jQuery 플러그인 호출이 옆에 있고 </body>
그 전에 스크립트가로드 된 window.onload
경우 다음과 같이 이벤트 후에 코드를 실행해야 합니다.
window.onload = function() {
//YOUR JQUERY CODE
}
`
따라서 코드는 모든 자산이로드되었을 때 창로드 후에 만 실행됩니다. 이 시점에서 jQuery ( $
)가 정의됩니다.
당신이 그것을 사용하는 경우 :
$(document).ready(function () {
//YOUR JQUERY CODE
});
`
는 $
아직이 jQuery를로드되기 전에 호출되며, 스크립트가 콘솔에서 첫 번째 줄에 실패하기 때문에,이 시점에서 정의되지 않습니다.
답변
방금 똑같은 일을했고 많은 것을 가지고 있음을 발견했습니다.
type="text/javacsript"
그래서 그들은로드되었지만 왜 작동하지 않는지에 대한 추가 힌트는 없습니다. 말할 필요도없이, 올바른 철자가 그것을 고쳤습니다.
답변
보기 및 마스터 레이아웃에서 스크립트 섹션 을 사용하십시오 .
보기에 정의 된 모든 스크립트를보기의 스크립트 섹션 안에 넣으십시오. 이런 식으로 다른 모든 스크립트가로드 된 후 마스터 레이아웃에이를로드 할 수 있습니다. 새 MVC5 웹 프로젝트를 시작할 때의 기본 설정입니다. 이전 버전에 대해 잘 모르겠습니다.
Views / Foo / MyView.cshtml :
// The rest of your view code above here.
@section Scripts
{
// Either render the bundle defined with same name in BundleConfig.cs...
@Scripts.Render("~/bundles/myCustomBundle")
// ...or hard code the HTML.
<script src="URL-TO-CUSTOM-JS-FILE"></script>
<script type="text/javascript">
$(document).ready(function () {
// Do your custom javascript for this view here. Will be run after
// loading all the other scripts.
});
</script>
}
조회수 / 공유 /_Layout.cshtml
<html>
<body>
<!-- ... Rest of your layout file here ... -->
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
마스터 섹션 파일에서 스크립트 섹션이 마지막으로 렌더링되는 방법에 유의 하십시오.
답변
실제로 jquery를로드해야합니다 .jquery가 아닙니다 -UI입니다!
<script language="JavaScript"
src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
</script>
이것은 jquery에 대한 올바른 스크립트 소스입니다.
<script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>