2012-08-12 104 views
-1

以下代码在使用XAMPP的localhost上运行良好。但它不适用于另一台服务器。jQuery单击事件不起作用

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="jquery-latest.js"></script> 
    </head> 
    <body> 
     word: <input type="text" id="sub" /> 
     user: <input type="text" id="user" /> 

     <button type="button" id="btn">Click Me!</button> 

     <script> 
      $("#btn").click(function() { 
       var word=$("#sub").val(); 
       var usr=$("#user").val(); 
       alert("hi"); 
      }); 
     </script> 
    </body> 
</html> 

我有Chrome的2个错误检查元素:

  • Uncaught SyntaxError: Unexpected end of input jquery-latest.js:5669

  • Uncaught ReferenceError: $ is not defined

+0

你有一份“jquery-latest.js”在你的html文件的同一个文件夹中吗? – davidbuzatto 2012-08-12 05:14:44

+0

你忘了将jquery-latest.js部署到服务器吗? – Strelok 2012-08-12 05:15:36

+0

sure..that文件在那里,我检查了第一:)我认为的一些其他问题 – 2012-08-12 05:15:58

回答

0

检查jQuery的latest.js与HTML文件同一目录。否则代码是好的,也可以。 在脚本中添加类型。试试这个

<script type="text/javascript" src="jquery-latest.js"></script> 
+0

未捕获的语法错误:输入jQuery的latest.js意外结束:5669 未捕获的ReferenceError:$没有定义 – 2012-08-12 05:22:35

+0

您也可以包括jQuery的一些jQuery的CDN: HTTP://文档。 jquery.com/Downloading_jQuery#CDN_Hosted_jQuery – 2012-08-12 05:31:36

0

您需要连接$(document).ready()事件中的点击处理程序。

<!DOCTYPE html> 
<html> 
    <head> 
     <script src="jquery-latest.js"></script> 
     <script> 
     $(document).ready(function() { 
      $("#btn").click(function() { 
       var word=$("#sub").val(); 
       var usr=$("#user").val(); 
       alert("hi"); 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     word: <input type="text" id="sub" /> 
     user: <input type="text" id="user" /> 

     <button type="button" id="btn">Click Me!</button> 
    </body> 
</html> 
+2

不,你不知道。浏览器基本上分析文档从上到下,脚本块可以访问它们上面的元素,因为这些元素已经被解析并添加到DOM。在OP的代码中,脚本块位于主体的末尾,所以_all_元素应该可以从代码中访问。 – nnnnnn 2012-08-12 05:23:59

+1

+1 http://jsfiddle.net/f0t0n/5ZvsQ/ – 2012-08-12 05:26:09

+3

** head **标签中的脚本会降低页面渲染的速度,因此如果可能的话,最好将脚本放在主体的末尾。 – 2012-08-12 05:29:13