2012-10-05 88 views
0

這是我的XHTML頁面的代碼。 jQuery位於我的應用程序的/js/文件夾中。所有其他頁面的驗證都是在jQuery中使用同一個文件完成的,但是我無法在我創建的這個測試頁面上運行簡單的jQuery代碼。這是頁面的代碼:jQuery在XHTML頁面上不起作用

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html"> 
    <h:head> 
     <title>Facelet Title</title> 

    </h:head> 
    <h:body> 
     <script type="text/javascript" src="js/jquery.js"></script> 

     <script> 

      $(document).ready(function() { 
       $("p").text("The DOM is now loaded and can be manipulated."); 
      }); 

     </script> 
     <br/><br/><br/> 
     <p>Not loaded yet.</p> 
     <input id="pedram" type="text" onclick="alert('hi');"/> 
    </h:body> 
</html> 

我也嘗試使用CDATA標記。我也將腳本移到了文檔的頭部。

唯一能正常工作的是我在onclick事件中放入的alert()。沒有別的工作。

請告訴我我做錯了什麼。

回答

8

變化

<script src="js/jquery.js"> 
     $(document).ready(function() { 
      $("p").text("The DOM is now loaded and can be manipulated."); 
     }); 
</script> 

<script> 
     $(document).ready(function() { 
      $("p").text("The DOM is now loaded and can be manipulated."); 
     }); 
</script> 

你並不需要指定兩次jQuery的源..也不需要時您正在使用的標籤內的js

+0

不幸運!試過了。 – Disasterkid

+1

檢查你的控制檯..是你的jQuery獲取加載?它是說$是不是一個函數? –

+0

所以如果警報有效,我可以認爲jquery庫加載正確嗎?但爲什麼其他的東西不起作用? – Disasterkid

0

我必須使用我的應用程序(Java)的上下文路徑,並添加到我的jQuery庫地址。

<script type="text/javascript" src="#{facesContext.externalContext.requestContextPath}/js/jquery.js"></script> 
0

該問題似乎是您使用<h:body>與jQuery 1.x結合使用。

使用jQuery 2.x或<body>將解決您的問題。

jQuery 1.x很可能在某處使用document.body,由於document.body在使用<h:body>時爲空,所以失敗。


如果你不介意我問,你爲什麼用H命名空間(http://java.sun.com/jsf/html)?