我正在使用 Rails 3.2.8 并且正在运行 jQuery v1.8.2。
以下作品:
$(window).load(function(){
alert('window load is working');
});
但这不起作用:
$(document).ready(function() {
alert('document ready is working');
});
事实上,每当我切换$(document).ready()
到$(window).load()
我正在测试的任何和所有 jQuery 函数时,它们都会被触发。这些包括手风琴,可拖动元素......
这是我的application.html.erb文件:
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body background="<%= image_path(random_bg) %>">
<%= render 'layouts/header' %>
<div id="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
</div>
<%= render 'layouts/footer' %>
</body>
</html>
生成的html...
<html>
<head>
<title>Derp</title>
*bunch of css files*
<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/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/collections.js?body=1" type="text/javascript"></script>
<script src="/assets/global.js?body=1" type="text/javascript"></script>
<script src="/assets/derp.js?body=1" type="text/javascript"></script>
<script src="/assets/sessions.js?body=1" type="text/javascript"></script>
<script src="/assets/static_pages.js?body=1" type="text/javascript"></script>
<script src="/assets/test.js?body=1" type="text/javascript"></script>
<script src="/assets/users.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
....
我也抛出了 stackoverflow,神经质地搜索了网络,并尝试了我能找到的所有解决方案:
- 我尝试禁用本地 jQuery 并使用 Google 托管 jQuery
- 我尝试过放置
javascript_include_tag
(将其移至样式表上方,将其移至之前) - 我试过包括
$(document).ready()
里面$(window).load()
但$(document).ready()
仍然没有触发...控制台没有问题(在 Chrome、Safari、Firefox 上检查)
在这里问了一个类似的问题,但他从未收到他的主要问题的答案。
为什么 jQuery 仅在我替换$(document).ready()
为时才有效$(window).load()
?