在$ .load()之后执行$(document).ready(),是可能的还是有替代品

时间:2011-12-08 09:01:38

标签: javascript jquery ajax

我有一个表格和表格的页面(用表格显示保存数据的结果)。

表单使用ajax提交数据,保存数据,之后应重新加载表。

问题是在执行$.load之后加载了表(使用AJAX加载($(document).ready()))。这意味着该表没有所需的功能。

是否有任何方法可以推迟执行$(document).ready()直到AJAX完成加载,或者我会使用完全不同的方法,比如使用iframe?

下面的

是我的问题的一个例子:

 $(document).ready(function(){
    //some code here that needed for the html in table.html e.g. datepicker, chosen, jqueryui, etc 
 });
 <form>
    //Inputs with a button to submit using ajax, where the result is displayed using table.php
 </form>
 <div id="tableOfContent"></div> 
    <script>
       $('#tableOfContent').load("table.php");
    </script>

5 个答案:

答案 0 :(得分:0)

document.ready在页面的HTML加载完成后被调用,没有两种方法。

但是,您可以使用实时绑定,它将处理程序附加到页面上尚未存在的元素。

示例:

$(".datepicker").live("click", function() { 
    $(this).datepicker();
})

更新了jQuery&gt; 1.7(这也更快)

$("#tableOfContent").on("click", ".datepicker", function() { 
    $(this).datepicker();
})

答案 1 :(得分:0)

你可以做到

$('#tableOfContent').load("table.php",function(){ 
   //completed load actions here
});

但是你应该注意,如果你加载图像,它们将不会被加载。如果是这种情况,你可以使table.php的内容最初隐藏,并在$('#tableOfContent img')。load()里面再次执行相同的操作。这适用于1张图片;多个图像有点复杂,但随意询问您是否正在寻找:)

答案 2 :(得分:0)

您可以使用jQuery.holdReady()延迟就绪事件:

$.holdReady(true);
// Do your custom stuff... the document may already be loaded.
$.holdReady(false); // Now the ready event will fire as soon as the DOM is loaded.

请参阅http://api.jquery.com/jQuery.holdReady/

答案 3 :(得分:0)

$(document).ready()应该用于应该执行的脚本,当文档准备就绪时。

如果你需要在ajax调用之后执行某些操作,你可以在函数中编写所有内容并使用ajax回调调用它。

function what_i_need() {
    // bla bla
}

<script>
   $('#tableOfContent').load("table.php", {}, what_i_need);//code had syntax error; '{)'
</script>

我不确定。另外,您也可以在文档准备就绪时调用该函数。

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

答案 4 :(得分:0)

从ready函数中加载表数据,并使用load()函数的complete事件来调用余数

$(document).ready(function() {  
     // click bindings etc ..
     $('#tableOfContent').load("table.php",function() {  
        // things to do once the table is loaded
     });
 });

load() documentation