jQuery ready函数被调用两次

时间:2010-11-05 15:36:36

标签: jquery

这是我的HTML

<div id="projekt" style="position: relative; width: 90%;height:400px;"/>

 $("#projekt").ready(function() {

     .. do something with the div
 });

问题是ready函数被调用两次。可能是什么原因?

9 个答案:

答案 0 :(得分:11)

如果您将javascript文件包含两次,则会执行两次。 这在firebug中没有明显显示script面板(我去调试javascript问题)只会在下拉菜单中显示一次文件。但是,如果您查看htmlnet面板,则可以看到是否存在倍数。

我有类似的东西:

<script src="/scripts/project.js" type="text/javascript"></script>
<script src="/scripts/project.js" type="text/javascript"></script>

(这类似于@chs的回答,但并不特定于rails。)

答案 1 :(得分:10)

a bug which can cause this。尝试更新或绑定到文档而不是div。

答案 2 :(得分:2)

我找到了解决这个问题的方法。

您应该使用此代码

$(document).bind("ready", MyDocumentReadyHandler)

而不是代码

$(document).ready(...);

您可以阅读有关&#34; ready&#34;的更多信息。函数使用此url

答案 3 :(得分:1)

我看到这种情况发生在我有警报时('...');在.ready回调中的某个地方。这最近发生在jQuery 1.5.2上。取消警报使代码只运行一次。

答案 4 :(得分:1)

无需在config / application.rb中的以下标记中添加应用程序选项  config.action_view.javascript_expansions [:defaults] =%w(jquery application)

它将调用applcation.js两次,因此函数也会在您的应用程序中运行两次

答案 5 :(得分:0)

调用ready()的正确方法适用于document

$(document).ready(function() {
    ...
});

答案 6 :(得分:0)

我有同样的问题。当我将我的JS移动到另一个文件并将其包含在head标签中而不是我正在处理的div之下时,它就消失了。

答案 7 :(得分:0)

使用JQM(jQueryMobile)时会遇到同样的问题,但我的问题是重复data-role="content"个属性。该属性触发使用该属性处理特定div或元素内的所有内容。在我的情况下,.ready函数被包装两次,因此执行了两次。希望有所帮助。

答案 8 :(得分:0)

如果iframe中有错误的src,如<iframe src="../" ...></iframe>,则函数ready()将执行两次。确保您拥有有效的网址。

例:

<iframe src="../something.html" ... ></iframe>
相关问题