2016-01-22 57 views
0

我已經在<script>標記中包含JQuery CDN,但它不起作用。我使用的IntelliJ,它會提示我這樣的警告「未解決的函數或方法$()」JQuery不能在Struts2的JSP中工作

任何反應表示讚賞

<%@ taglib prefix="s" uri="/struts-tags" %> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
     pageEncoding="UTF-8"%> 

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.0.min.js"></script> 
    <title>Success</title> 
    <script> 
     $("#select").click(function() { 
      alert("aaaa"); 
     }); 
     $("#delete").click(function() { 
      alert("aa"); 
     }); 

    </script> 
</head> 
<body> 
<label for="person">personname</label> 
<input id="person" name = "person" type="text" /> 
<input id="add"type="button" value="add" /> 
<input id="delete"type="button" value="delete"/> 
<input id="select"type="button" value="select"/> 
<input id="update"type="button" value="update"/> 


</body> 
</html> 
+0

@DaveNewton以及前.. 。這是與IE兼容的JQuery的最新版本<9 –

+0

@DaveNewton這是最新的jQuery 1.x.它是2015年。在美國jQuery 1.x被認爲是舊的(只是好奇)?我猜一週前的IE 8-9-10 EOL通知可能會推動jQuery 2的發展,但考慮到1.12版本*舊版本聽起來很奇怪。他們(jQuery 1和2)是平行項目,不是嗎? –

+0

@AndreaLigios嗯,是的。 –

回答

1

既然你已經把裏面的頭所有的JS,你必須把它放在裏面document.ready

<script> 
$(document).ready(function(){ 
$("#select").click(function() { 
      alert("aaaa"); 
     }); 
     $("#delete").click(function() { 
      alert("aa"); 
     }); 

}) 
</script> 

這是因爲script標籤是阻塞標籤,當你把它放在頭標籤內,前DOM就緒時,它會被解析。那時候jQuery不知道什麼是#select & #delete,所以沒辦法就可以附加click處理程序。

第二個選項是將所有腳本放在靠近body標籤處。所以第一個DOM將準備好元素,然後js將被執行。然後,你可以刪除

$(document).ready(function(){ 
}) 

<body> 
    <!--All HTML elements--> 
    <script> 
     // All your js goes here. 
    </script> 

有把腳本的幾個優勢剛剛閉幕</body>標籤,這超出了這個問題

+0

非常感謝您的幫助! –