jQuery在Firefox中无法正常工作

4

jQuery在火狐浏览器中无法工作。它在IE和Google Chrome中运行良好,但是当我尝试在Mozilla Firefox中运行应用程序时,jQuery无法工作。有什么猜测吗? 这是我的代码片段

<!DOCTYPE HTML PUBLIC>
<html>
   <head>
      <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
      <style>
         div{
         width:200px;
         height:100px;
         border:1px solid red;
         }
      </style>
   </head>
   <body>
      <div> One</div>
      <div>Two</div>
      <div>Three</div>
   </body>
   <script>
      $('div').click(function(){
       alert("Hello.....");
      });
   </script>
</html>

1
http://jsfiddle.net/yVk53/ - 对我来说运行良好 - Chris
1
@Chris 去查看那个 jsFiddle(http://jsfiddle.net/yVk53/show/)的源代码,你会发现它实际上将你的所有代码都包裹在另一个 body 元素中,所以这不是一个公平的测试。 - Ben Everard
1
是的,从jsfiddle它对我来说是有效的。但是,如果我在浏览器中打开相同的应用程序(保存在我的桌面上的相同代码),它就无法工作...... - Rama Rao M
3个回答

9

您应该使用DOM就绪事件

$(document).ready(function(){
  $('div').click(function(){
   alert("Hello.....");
  });
});

是的...你说得对...我会把你的答案标记为被采纳的...但我有一个疑问...我把我的脚本写在了body的末尾,这样它不就相当于document.ready()吗!!! - Rama Rao M
@RamaRaoM 你有没有看其他的答案?很可能是因为你的脚本不在主体内部,而是在外面... - sp00m
1
@RamaRaoM:<body><head>标签之外的脚本会自动移动到<head>中。如果您不喜欢自动更正,则应编写有效的HTML。 - Wladimir Palant

3
将你的 jQuery 代码放在 document.ready 内部。
 $(document).ready(function() {
  $('div').click(function(){
       alert("Hello.....");
      });

 });

给你的 div 加上一个合适的类,就像这样:
<div class="clsDiv"> One</div>

像这样调用 amd。

 $('.clsDiv').click(function(){

他为什么要给他的div添加一个class? - sp00m

0

lukenz和Shree做得很好。 HTML元素的JQuery事件处理程序必须首先在$(document).ready()中注册。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接