2012-05-11 2 views
0

Im을 실행하려고 시도했지만 함수를 호출해야하는지 또는 자동으로 실행되는지는 확실하지 않습니다.jQuery를 사용하여이 함수를 호출하는 방법

window.onload 메서드를 사용할 때 함수 이름을 < init>로 지정하면 실행됩니다. jquery로 호출하면 함수 이름이 있어야하는지 알 수 있습니까?

어떻게 코드를 실행시켜야합니까?

// JavaScript Document 
$(document).ready(function() { 
    var xhr = false; 
    var xPos, yPos; 

    function() { 
     var allLinks = document.getElementsByTagName("a"); 

     for (var i = 0; i < allLinks.length; i++) { 
      allLinks[i].onmouseover = showPreview; 
     } 

    } //end function 
    function showPreview(evt) { 
     if (evt) { 
      var url = evt.target; 
     } else { 
      evt = window.event; 
      var url = evt.srcElement; 
     } 
     xPos = evt.clientX; 
     yPos = evt.clientY; 

     if (window.XMLHttpRequest) { 
      xhr = new XMLHttpRequest(); 
     } else { 
      if (window.ActiveXObject) { 
       try { 
        xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (e) {} 
      } 
     } 

     if (xhr) { 
      xhr.onreadystatechange = showContents; 
      xhr.open("GET", url, true); 
      xhr.send(null); 
     } else { 
      alert("Sorry, but I couldn't create an XMLHttpRequest"); 
     } 
     return false; 
    } 

    function showContents() { 
     if (xhr.readyState == 4) { 
      if (xhr.status == 200) { 
       var outMsg = xhr.responseText; 
      } else { 
       var outMsg = "There was a problem with the request " + xhr.status; 
      } 
      var prevWin = document.getElementById('previewWin'); 
      prevWin.innerHTML = outMsg; 
      prevWin.style.top = parseInt(yPos) + 2 + "px"; 
      prevWin.style.left = parseInt(xPos) + 2 + "px"; 
      prevWin.style.visibility = "visible"; 

      preview.onmouseout = function() { 
       document.getElementById('preview').style.visibility = "hidden"; 
      } 
     } 
    } 
}); 
+1

나에게 수를주고 .. 내가 그 전화 할게! (당신의 Q 나 코드에서 정확히 명확하지는 않습니다. 좀 더 구체적으로 말하십시오.) –

+0

$ (document) 대신에 코드의 맨 위에 함수 이름을 추가한다면 ...ready ... say say 함수 init()을 호출하고 함수를 window.onload init(); 전체 코드를 실행합니다. – StudentRik

+1

'function() {'은 (는) 유효한 JavaScript가 아닙니다. 그런 이름없는 함수는 만들 수 없습니다. –

답변

2

귀하는 기능을 선언했습니다. 함수를 호출 할 위치가 없으므로 실행됩니다.

이 함수는 document.ready 함수 내에서 선언 된대로 외부에서 호출 할 수 없습니다. 인라인 자바 스크립트를 당신은 두 가지 옵션이 있습니다이

$(document).ready(function() { 
    function showcontent(){ 
    }; 
    showcontent(); 
}); 
+0

고맙습니다 .. 작동합니다 :-) – StudentRik

1

jQuery를이 ===

자바 스크립트

그래서 jQuery를에서 함수를 호출하면 정확한 자바 스크립트에서 함수를 호출하는 것과 동일합니다.

jQuery가하는 유일한 일은 사용하기 쉬운 메소드와 함수를 작성하여 JavaScript 개발을 가속화하는 것입니다. 예를 들어, window.onload 이벤트는 $(document).ready() 이벤트로 바뀝니다.

+0

그래서 어디에서 함수를 호출합니까 ?? html로 ?? 스크립트 맨 아래에 ?? – StudentRik

+0

당신은 어떻게 달릴 것입니까? – StudentRik

+0

@StudentRik'$ (document) .ready()'함수는 일반적인'init()'함수입니다. '정상적인'JS로 초기화 함수에 두는 것은 jQuery를 사용하여 준비된 함수에 놓는다. –

0

같은 것을 수행

<script>...yourcode...</script> 

또는 외부 파일에 링크 된 자바 스크립트 :

<script type="text/javascript" src="yourfile.js"></script> 

일반적으로 링크 된 파일은 머리 태그에, 인라인 스크립트는 맨 아래에 있습니다. 당신이 jQuery를 unsing하는 경우

당신은이 라이브러리 http://jquery.com

을 포함 할 필요가
function() { 
    var allLinks = document.getElementsByTagName("a"); 

    for (var i = 0; i < allLinks.length; i++) { 
     allLinks[i].onmouseover = showPreview; 
    } 

} //end function 

정말해야합니다

function() { 
    var allLinks = $("a"); 

    allLinks.on("mouseover", showPreview); 

} //end function 
+0

* "일반적으로 링크 된 파일은 헤드 태그에 있고, 인라인 스크립트는 맨 아래에 있습니다."* 맨 아래에 모두 배치하는 것이 좋습니다. 또한 두 태그 모두'type' 속성은 필요하지 않습니다. –

+0

개인적인 취향에 따라, 대부분의 장소에서 맨 아래에 배치하는 것이 좋지만, expierence에서는 jQuery 라이브러리를 문서 맨 위에 놓은 다음 JS 파일의 추측 된로드를 사용합니다. – Bloafer

관련 문제