1

정의되지 않습니다

<script type="text/javascript"> 
$(function() { 
    alert("please work"); 
}); 
</script> 

그리고 이것은 저를 준다 :

jQuery가로드되고 초기화 된 인라인 자바 스크립트를 실행 한 후 트리거되는 일부 기능이 필요하다고 생각합니다. 그러나 다른 방법이 있다면, 나는 기뻐할 것입니다.

편집 :

일부 사용자는 완전히 외면입니다. Mahesh Sapkal은 가까와졌습니다. 여전히

나는 오류가없는이 코드

,하지만 당신은 Javascript를의 비동기로드 기능을 구현하기 위하여려고하는 경우에

<head> 
    <script type="text/javascript"> 
     var MhInit = NULL; 

     // Add a script element as a child of the body 
     function downloadJSAtOnload() { 
      var element = document.createElement("script"); 
      MhInit = element.src = "my_packed_scripts.js"; 
      document.body.appendChild(element); 
     } 

     // Check for browser support of event handling capability 
     if (window.addEventListener) 
      window.addEventListener("load", downloadJSAtOnload, false); 
     else if (window.attachEvent) 
      window.attachEvent("onload", downloadJSAtOnload); 
     else window.onload = downloadJSAtOnload; 
    </script> 

</head> 
<body> 
    <script type="text/javascript"> 
     MhInit.onload = function() { 
      console.debug("here"); 
     }; 
    </script> 
</body> 
+0

사용 jQuery.noConflict(); –

답변

2

작동하지 않습니다는, 따라 인라인 자바 스크립트를하지 않는 더 나은 아이디어가 될 것입니다 비동기 적으로로드 된 파일.

jQuery를 비동기식으로로드하는 것, 즉 DOM 콘텐츠가로드 된 후 jQuery에 종속 된 DOM의 모든 인라인 스크립트가 실패 할 것으로 생각됩니다. 이 경우 RequireJS와 같은 것을 사용하여 JS 종속성을 관리하고 비동기 적으로로드 할 수 있습니다.

그러나 더 간단한 해결책을 원한다면 JS 라이브러리를 DOM 끝에두고 onload 처리기에 종속성을 바인딩하는 것이 좋습니다. 이

<body> 
    <!-- Body content --> 
    <script>document.onload = function() { //use jQuery here }</script> 
</body> 
<script src="/path/to/jQuery/"></script> 
+0

는 아무런 도움없이 이것을 시도했습니다. 지연된 jQuery에서 작동해야합니까? – Trix

+0

지연된 jQuery는 무엇을 의미합니까? – Achrome

-3

같은

뭔가이 http://w3schools.com/jquery/default.asp을 시도합니다. 당신은 쉽게 그것을 할 수 있습니다.

<script> 
$(document).ready(function(){ 
$("p").click(function(){ 
alert("please work"); 
}); 
}); 
</script> 
+0

'$'은 정의되지 않았습니다. '$'를 사용할 수있을 때까지 JS의 로딩을 지연 시키려면'$'를 호출 할 수 없습니다. – Quentin

2

당신이 JQuery와의 로딩을 연기하고 있기 때문에, JQuery와로드가 완료된 경우에만 호출해야 자바 스크립트 인라인. 라이브러리가로드되었는지 확인하려면 다음 코드를 사용하십시오.

var scriptElem = document.createElement("script"); 

scriptElem.onload = function() { 
    alert('please work'); 
}; 

scriptElem.src = "http://code.jquery.com/jquery-1.10.1.min.js"; 

document.getElementsByTagName("head")[0].appendChild(scriptElem); 
3

로드하기 전에 jQuery을 사용할 수 없습니다. 페이지 하단에서 <script src="jquery.js" />을 이동하는 경우 $(...)을 사용하는 모든 행도 아래로 이동해야합니다.

이 라인을 따라 뭔가가는 까다로운 솔루션이 있습니다 : 페이지의 상단에 몇 가지 변수를 정의

1) :

var _jqq = []; 
var $ = function(fn) { 
    _jqq.push(fn); 
}; 

2) 페이지의 중간에 당신이 쓸 수는 :

$(function() { 
    alert("document ready callback #1"); 
}); 
$(function() { 
    alert("document ready callback #2"); 
}); 

3) 페이지의 하단에 jQuery를 포함

<script src="//code.jquery.com/jquery.min.js"></script> 

4) 마지막 :

$(function() { 
    $.each(_jqq, function(i, fn) { 
     fn(); 
    }); 
}); 

Demo

+0

이것은 꽤 멋지고 단순 해 보입니다. 아직 테스트 중이며 곧 업데이트 될 것입니다. –