2013-01-23 72 views
0

出於某種原因,我的jQuery腳本只是不想工作,它真的很簡單,我把所有東西都拿走了,除了實際的jQuery腳本,它真的很煩人,請幫忙。 謝謝!jQuery只是不工作

<!doctype html> 
<html> 

    <head> 
     <script src="jquery.js"></script> 
     <script> 
      $("#click").click(function() { 
       alert("works!"); 
      }); 
     </script> 
    </head> 

    <body> 
     <a href="#" id="click">Button</a> 
    </body> 

</html> 

P.S. jQuery JS文件是有效的。

+1

是jquery路徑有效嗎?您的瀏覽器是否啓用了JavaScript?嘗試在瀏覽器中打開js控制檯以查看是否有錯誤 – Cybermaxs

+3

該解決方案涵蓋了幾乎所有介紹性的jQuery教程,包括[this](http://learn.jquery.com/about-jquery/how -jquery-works)(在jquery.com主頁上有鏈接)。 – nnnnnn

+0

啊,我已經離開jQuery這麼久了,我忘記了,我忘記了doc準備好了,非常感謝。 – Matthew

回答

4

您需要內

$(function(){ 
    // your code here which relies on DOM elements 
}); 

否則你DOM尚未加載和事件將不會被綁定到元素包裝你的代碼。

+0

誰投了票,請解釋一下? –

+0

我沒有投票,但可能的原因是因爲你說「否則你的DOM沒有被加載。」。該聲明是不正確的 - DOM總是加載在一個正確編碼的頁面中,只是jQuery代碼需要等待DOM加載。 –

7

將您的代碼更改爲此。它確保了JavaScript的執行一次所有的HTML元素都被加載到頁面:

$(document).ready(function() { 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 

然而,你應該將你的腳本標籤,從而頁面的底部,以確保它們不會阻塞。這也意味着你實際上不需要$(document).ready回調。

2

包裝你的功能整合到$(document).ready()

$(document).ready(function(){ 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 
1

添加您的代碼中document.ready這樣

$(document).ready(function() { 
    $("#click").click(function() { 
     alert("works!"); 
    }); 
}); 

或文檔中這樣

<body> 
    <a href="#" id="click">Button</a> 
    // Other elements... 
    <script type="text/javascript"> 
      $("#click").click(function() { 
       alert("works!"); 
      }); 
    </script> 
</body> 
-1

末尾添加代碼試試這個:

$("#click").live("click",function() { 
    alert("works!"); 
}); 
+1

這是以性能爲代價過度設計解決方案的。此代碼將在項目添加到DOM的每個點都執行,效率低下。 – Dean

+0

'live()'已經從jQuery v1.9中刪除,所以我會避免再使用它。 –

0
$(document).ready(function(e) { 
//TO DO your code goes here   
}); 
0

只需將腳本標記更改爲「/ body」標記即可。 這將讓瀏覽器創建DOM並逐個閱讀腳本! 乾杯!