2012-03-14 6 views
0

모든, 를로드하지 :jQuery를 나는 다음과 같은 코드를 가지고 DOM 창에

$(document).ready(function() { 
// more code using $ as alias to jQuery 
alert('it works'); 
},'jQuery'); 

페이지가로드 나는 다음과 같은 오류 얻을 때 :

Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function

내가 전에 jQuery를로드 한을 나는 이것을 추가하려고 노력했다. 이 작동하지 않습니다 이유에

<script type='text/javascript' src='http://localhost/oml_live_update/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/plugins/prettyphoto/js/jquery.prettyPhoto.js?ver=3.1.3'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/superfish.js?ver=1.4.8'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/flexslider.js?ver=1.8'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/framework/frontend/assets/js/roundabout.js?ver=1.1'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/assets/js/alyeska.min.js?ver=1.0'></script> 
<script type='text/javascript' src='http://localhost/oml_live_update/wp-content/themes/alyeska/assets/js/custom.js?ver=1.0'></script> 

모든 아이디어 :이로드 된 방법은 다음과

는 (내 코드가 custom.js이다)인가?

+0

이 코드 앞뒤에 jquery 스크립트를로드하는시기는 언제입니까? – Gabe

+0

이 코드 앞에 jQuery 파일을 추가 했습니까? –

+0

뭔가 잘못하고 있습니다. jquery 파일을 포함 할 수도 있습니다. 그것은 작동합니다 [jsfiddle] (http://jsfiddle.net/DD5jJ/) – Dips

답변

2
$(function() { 
    alert('it works'); 
}); 

그게 효과가 없습니까? http://api.jquery.com/ready/

당신이 인생을 만들려면 (즉시 호출 함수 표현식) : 이것은 내 코드에 대한 새 범위를 생성하고 jQuery 객체로 전달

(function ($) { 
    alert('it works'); 
})(jQuery); 

이이 표준 구문입니다 $.

업데이트

나는 워드 프레스를 사용하지 않는 그러나 나의 이해는 jQuery를 기본적으로 $j 변수에 저장되도록 $j=jQuery.noConflict(); (이것은 자동으로 수행되지 않은 경우 다음 수동으로 수행해야합니다), 실행한다는 것입니다 :

<script type='text/javascript' src='http://localhost/oml_live_update/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script> 
<script> 
$j = jQuery.noConflict(); 
$j(function() { 
    alert('it works'); 
}); 
</script> 
... 

또한 사용하지 않아도 당신이 document.ready 이벤트 핸들러 익명 함수에 $를 통과 할 수 있습니다 $j :

업데이트

77,

당신이 $ 대신에 jQuery를 사용하여 시도 적이 있습니까?

jQuery(function($) { 
    alert('it works'); 
    //since `$` was passed into this function, it can be used instead of `jQuery` 
}); 

+0

저는 Wordpress에있는 noConflict 때문에 Wordpress에서 사용하고 있습니다. – user1048676

+0

@ user1048676 내 답변에 ** 업데이트 **를 참조하십시오. 나는 워드 프레스가'$ .noConflict()'를 독자적으로 수행하는지, 아니면해야하는지는 모르겠다. – Jasper

+0

@ user1048676 마지막 ** 업데이트 ** 체크 아웃. 전역 범위에서'$'대신'jQuery'를 사용할 수 있어야합니다. – Jasper

0

문제는 아마도 충돌하는 것일 수 있습니다. 내가의 superfish 메뉴가 잘 작동하고 비슷한 문제, 내 경우에는

했다

<script> 
    $.noConflict(); 
    $(document).ready(function() { 
    // more code using $ as alias to jQuery 
    alert('it works'); 
    }); //You dont need to pass the pass the extra 'jQuery' Parameter 
</script> 
0

사용하지만, 난 여전히이 오류를 얻을 것입니다.

은 내가
<script> 
    $(document).ready(function(){ 
     $("ul.sf-menu").superfish({ 
      pathClass: 'current' 
     }); 
    }); 
</script> 

을했고 불을 지르고는 pathClass를 가리키는 것입니다.

TypeError: $("ul.sf-menu").superfish is not a function 
[Break On This Error]  

pathClass: 'current' 

이 당신을 위해 작동하지만 전체 스크립트 호출을 시도하고 제거 할 수 없습니다가, 즉

<script> 
    $(document).ready(function(){ 
     $("ul.sf-menu").superfish({ 
      pathClass: 'current' 
     }); 
    }); 
</script> 

, 그것은 여전히 ​​메뉴를 읽는 방법을 알아 내려고 나를 위해 일하지만, 일했다.Firebug 실 거예요 버그, IE는 나에게 안전하지 않다고 말해주지 않을 겁니다.

관련 문제