jQuery无法在Chrome 18中运行

时间:2012-04-09 21:06:19

标签: javascript jquery google-chrome

jQuery中的任何内容似乎都不适合我。我的版本是18.0.1025.151米。 javascript位于文件 test.js

$('#paragraph').click(function() {
$('#paragraph').hide();
});

html就是这样:

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery Example</title>

    <script src="jquery-1.7.1.min.js"></script>
    <script src="test.js"></script>
</head>
<body>
    <p id="paragraph">This is my paragragh 401!</p>
</body>
</html>

我已经三次检查过jQuery文件应该在哪里。本质上,代码应该在单击时使段落消失。看起来很简单,语法正确。我选择了这么简单的代码,因为虽然常规的javascript语句和代码工作正常(例如alert()和whatnot),但jQuery中到目前为止一切都没有。

这是奇怪的部分。在Chrome的开发人员工具中使用控制台时,如果我输入完全相同的jQuery内容并按Enter键,它实际上可以正常工作并按照预期的方式运行。

这与Chrome的安全结构有什么关系吗?

编辑另外,我还要注意,我还没有在我的服务器上上传这些文件。这是在localhost上(我正在使用 xammp 来获取它的价值),所以也许这可能有助于解决这个问题。

3 个答案:

答案 0 :(得分:3)

将文档中的代码包装好,或将test.js放在最终正文标记之前。

答案 1 :(得分:2)

它在DOM准备好之前执行。它应该是这样的:

$(function(){
    $('#paragraph').click(function() {
        $('#paragraph').hide();
    });
});

要解决以下评论:

http://api.jquery.com/ready/

  

.ready()方法通常与匿名函数一起使用:

$(document).ready(function() {
  // Handler for .ready() called.
});
  

这相当于调用:

$(function() {
 // Handler for .ready() called.
});

答案 2 :(得分:0)

你必须把它包装好。那可能是你的问题。您也可以使用$(this)或缓存选择器。

$(function () {
    $('#paragraph').click(function () {
        $(this).hide();
    });
});