gpt4 book ai didi

javascript - 为什么 $(window).load() 有效但 $(document).ready() 无效?

转载 作者:搜寻专家 更新时间:2023-11-01 04:27:30 25 4
gpt4 key购买 nike

我正在使用 Rails 3 应用程序,我想使用可排序列表。我正在使用显示的方法 here .我的应用程序使用 JQuery,并且我的应用程序布局中包含一个 js 文件,它调用 $(document).ready() 来设置一些视觉内容。这似乎工作正常。

但是,当我尝试通过 content_for :javascript 在我的 View 模板中调用 $(document).ready() 来设置可排序列表时,该代码永远不会火灾。我的布局文件中确实有必要的 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">

最佳答案

与body的onready=有冲突回调注册。请参阅 jquery 文档。您必须删除 <body onload="initialize()"> .

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

还有一种可能是资源加载非常非常慢。然而,第一种可能性更大。

.ready加载资源时触发。资源可能永远处于等待状态,因为服务器在将资源发送到浏览器时从未关闭套接字。如果是这种情况,请使用 firebug 的网络监控工具进行跟踪。

关于javascript - 为什么 $(window).load() 有效但 $(document).ready() 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com