超级奇怪的问题在这里。我无法让jQuery在.js文件内绑定除文档之外的任何选择器。无法将jQuery选择器绑定到任何文档 - Rails 3.2
示例代码:
$(document).click(function() {
$("#nav_primary").empty();
});
当我点击任何地方,在nav_primary DIV清空,符合市场预期,但是,当我使用此代码:
$("div").click(function() {
$("#nav_primary").empty();
});
什么,当我点击情况。除非我将它输入到控制台中。当我将上面的代码粘贴到我的Firebug控制台中时,它会按预期加载,并在任何地方点击按预期清空div。
我了解JavaScript和jQuery都在运行,因为我有这个在我的JS和它记录预期:
console.log("js is running");
if (jQuery) {console.log('jQuery is loaded!');}
我听说有与原型冲突,但我不认为我正在运行它。这里是我的头:
<head>
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/portfolio.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<link href="/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
<meta content="authenticity_token" name="csrf-param" />
<meta content="(token here)" name="csrf-token" />
<!--[if !IE 7]>
<style type="text/css"> #main {display:table;height:100%} </style>
<![endif]-->
<!--[if lt IE 9]>
<script src='//html5shiv.googlecode.com/svn/trunk/html5.js'></script>
<![endif]-->
</head>
就是这样。 18个月的jQuery工作,我所做的一切都是修改和维护其他人的功能;我从来没有用这个框架开始自己的环境。 (此外,docs.jquery.com目前处于脱机状态) – user1279629 2012-03-22 04:28:18
很高兴这是我的回答对您有帮助。之所以不起作用是因为你在头部定义了你的函数,但是当jquery试图找到'div'元素时,它找不到任何东西,因为浏览器的解析器仍然在头部中,它必须解析到'body'或'html'标签的第一个末尾 – Rezigned 2012-03-22 04:35:07