我正在使用 rails 3 应用程序,我想使用可排序的列表。我正在使用此处显示的方法。我的应用程序使用 JQuery,并且我的应用程序布局中包含一个 js 文件,该文件调用$(document).ready()
以设置一些视觉内容。这似乎工作正常。
但是,当我尝试通过调用$(document).ready()
视图模板content_for :javascript
来设置可排序列表时,该代码永远不会触发。我的布局文件中确实有必要的yield :javascript
调用,如果我加载页面并查看源代码,一切看起来都很好。但是,代码永远不会运行——即这个$(document).ready()
永远不会触发的实例。
我刚刚发现,如果我替换$(document).ready()
为,$(window).load()
那么我的 js 代码就会运行。
所以我的问题是:为什么会$(document).ready()
失败和$(window).load()
工作?
代码
这有效:
<% content_for :javascript do %>
<script>
$(window).load(function(){
alert('it works!');
});
</script>
<% end %>
这不起作用
<% content_for :javascript do %>
<script>
$(document).ready(function(){
alert('it works!');
});
</script>
<% end %>
这是布局
<!DOCTYPE html>
<html>
<head>
<title><%= content_for?(:title) ? yield(:title) : "Untitled" %></title>
<!-- Reset Stylesheet -->
<%= stylesheet_link_tag "reset" %>
<!-- Main Stylesheet -->
<%= stylesheet_link_tag "style" %>
<!-- Invalid Stylesheet -->
<%= stylesheet_link_tag "invalid" %>
<%= javascript_include_tag :defaults, "nested_form", "DD_belatedPNG_0.0.7a", "simpla.jquery.configuration", "facebox", "jquery-ui.min" %>
<%= yield :javascript %>
<%= yield(:head) %>
<%= csrf_meta_tag %>
</head>
<body onload="initialize()"><div id="body-wrapper">
…