3

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

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

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

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

提前致谢!

这是我尝试过的代码:

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

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

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

4

4 回答 4

6

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

于 2012-06-25T08:07:29.030 回答
3

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

// If the DOM is already ready
if ( jQuery.isReady ) {
// Execute the function immediately
fn.call( document, jQuery );
} // ...
于 2012-06-25T08:05:04.913 回答
1

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

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

或者

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

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

在jquery上阅读这里

于 2012-06-25T07:59:50.023 回答
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) 将触发两次。

于 2012-06-25T08:16:16.570 回答