jQuery和document.ready()两次触发

时间:2012-06-25 07:53:24

标签: javascript jquery

我知道这是一个非常常见的问题,但即使是研究,我也无法理解我对document.ready()Javascript函数的调用出了什么问题。

出于某种原因,它会被调用两次,即使我没有执行除警报以外的任何操作。

正如我在标题中所说,我正在使用jQuery,并且发现了一些东西可能来自$(function(){}),所以我也删除了那里的任何执行。没有任何变化,document.ready()仍然被调用两次。

这个问题的根源是什么?如何解决/解决它?

提前致谢!

这是我尝试过的代码:

$(function(){
    //$( "#tabs" ).tabs();
});

$(document).ready(function() {
    //getTableEntity("organisation", "getentitytable", "#testtable");
    //standardDataTable('#tableOrga');
    alert("document.ready");
});

编辑:我知道我两次使用相同的功能。将所有内容放在一个函数中并不能解决问题。

4 个答案:

答案 0 :(得分:6)

你是否使用模板引擎如smarty或.net或其他东西?可能是jquery有一个双脚本源。然后有副作用。

答案 1 :(得分:3)

您可以使用此代码检查dom是否准备就绪。将代码放在您的javascript源文件中。

// If the DOM is already ready
if ( jQuery.isReady ) {
// Execute the function immediately
fn.call( document, jQuery );
} // ...

答案 2 :(得分:1)

应该使用其中一个...并将您的代码放在以下jquery函数之一

$(function(){
    //$( "#tabs" ).tabs();
});

OR

$(document).ready(function() {
    //getTableEntity("organisation", "getentitytable", "#testtable");
    //standardDataTable('#tableOrga');
    alert("document.ready");
});

$(function(){等于$(document.ready)

请阅读jquery

答案 3 :(得分:0)

我认为这个演示会帮助你

<script>
    $(function(){
        $('#test1').appendTo('#test2');
        console.log(1);
    })
</script>
<div id="test1">
<script>
    $(function(){
        console.log(2);     
    });
</script>
</div>

<div id="test2"></div>

console.log(2)将触发两次。