2012-05-11 80 views
0

我試圖讓代碼運行,但沒有反應,因爲我不知道我是否必須調用該函數或自動運行。如何使用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 ...讓我們說函數init()並用window.onload init();調用函數。它會運行整個代碼。 – StudentRik

+1

'function(){'不是有效的JavaScript。你不能像這樣做一個未命名的函數。 –

回答

2

你已經聲明瞭函數。沒有你在哪裏調用函數,以便它執行。

您將無法從外部調用此函數,因爲它們是在document.ready函數內聲明的。做這樣的事情

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

謝謝..它的工作原理:-) – StudentRik

1

的jQuery JavaScript的===

所以調用jQuery的功能是完全一樣的調用一個JavaScript函數。

jQuery所做的唯一事情就是創建易於使用的方法和函數來加速JavaScript的開發。例如,window.onload事件被替換爲$(document).ready()事件。

+0

那麼我在哪裏調用函數?在html中?在腳本的底部? – StudentRik

+0

你會如何得到它運行? – StudentRik

+0

@StudentRik'$(document).ready()'函數是普通的'init()'函數。你用'普通'JS放在init函數中,你用jQuery把它放在ready函數中。 –

0

你有兩個選擇,內聯JavaScript:

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

或外部文件鏈接的javascript:

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

通常鏈接文件是在頭標籤,內聯腳本將位於底部。

如果您unsing jQuery的你還需要包括這個庫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 lib放在文檔的頂部,然後使用無負載的JS文件加載 – Bloafer