手动调用jQuery document.ready函数

时间:2012-01-16 11:43:39

标签: javascript jquery

如果我发出AJAX请求并想要调用$(document).ready()设置的所有函数。我该怎么做?谢谢

3 个答案:

答案 0 :(得分:6)

$(document).ready();

如果这不起作用,请尝试:

function startup() {

    // All your functions in here.

}

$(document).ready(startup);

在您的AJAX请求完成后:

startup();

答案 1 :(得分:3)

最简单的方法是使用共享功能:

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

$.post('/', {}, function() {
    setup();
}, 'json');

但如果您正在使用它来重新分配监听器,那么您可能可以在创建之前将它们分配给,如下所示:

$(document).ready(function() {
    $(document).delegate('.my-button', 'click', function() { });
});

使用此代码,所有.my-button点击都将由您的自定义函数处理,无论DOMReady上DOM中是否存在该按钮。

请注意:

  • $(document).ready(function() { ... });可以最小化为$(function() { ... });
  • 如果您使用的是jQuery 1.7+,请.on优先于.delegate$(document).on('click', .my-button', function() { });
  • 更喜欢更广泛的背景,即$('#close-parent').delegate超过$(document).delegate

答案 2 :(得分:0)

不是手动触发document.ready(这可能是不好的习惯恕我直言),而是创建一个名为setup的函数,它设置所有的侦听器等,并在需要重新应用等事情时调用此函数