1

jQuery 中的任何内容似乎都不适用于我的 Chrome。我的版本是 18.0.1025.151 m。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() 和诸如此类的东西),但到目前为止,jQuery 中绝对没有任何工作。

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

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

编辑:另外,我应该注意我还没有在我的服务器上上传这些文件。这是在本地主机上(我正在使用xammp来证明它的价值),所以也许这可能有助于阐明这个问题。

4

3 回答 3

3

将代码包装在准备好的文档中,或放在test.js结束正文标记之前。

于 2012-04-09T21:09:17.003 回答
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.
});
于 2012-04-09T21:10:35.633 回答
0

您必须将其包装在准备好的文档中。那可能是你的问题。您也可以使用$(this)或缓存选择器。

$(function () {
    $('#paragraph').click(function () {
        $(this).hide();
    });
});
于 2012-04-09T21:10:36.207 回答