gpt4 book ai didi

javascript - 我可以调用 $(document).ready() 来重新激活所有加载事件处理程序吗?

转载 作者:IT王子 更新时间:2023-10-29 03:09:09 25 4
gpt4 key购买 nike

有没有人碰巧知道如果以及如何我可以重新调用所有加载事件处理程序?我正在引用一些我无法控制的 .js 文件,这些 .js 库在 $(document).ready() 中进行初始化,不幸的是没有提供任何简单的函数来重新初始化。

我目前正在尝试用来自 ajax 调用的内容替换一个大的 div block ,因此我必须重新初始化外部库。因此,最好只调用 $(document).ready() 以重新初始化所有内容。

到目前为止,我已经在 ajax 调用上尝试过:

success: function(data) {
alert('1'); // Displays '1'
$('#content').html(data);
alert('2'); // Displays '2'
$(document).ready();
alert('3'); // Does not display
}

调用 $(document).ready(); 也悄无声息地失败了。 JavaScript 控制台没有显示任何错误。有谁知道这是否可行(无需修改 javascript 库文件)?

最佳答案

既然你问的是如何在不修改外部JS文件的情况下做到这一点,我就这样回答。我在调试器中跟踪了 jQuery 中的 .ready() 函数,页面准备就绪时调用的根函数似乎是这样的:

jQuery.ready();

但是,您似乎不能仅仅再次调用它来完成您想要的,因为当它第一次触发时,它似乎与之前注册的函数解除绑定(bind)(例如忘记它们)。因此,第二次手动调用 jQuery.ready() 不会再次触发相同的函数调用,我在调试器中验证了这一点(断点只命中一次,而不是第二次)。

因此,如果不更改 jQuery 实现以使其不解除绑定(bind)(以允许多次触发)或更改每段准备好的处理程序代码以使用您自己可以触发的事件,您似乎无法解决此问题次数随意。

关于javascript - 我可以调用 $(document).ready() 来重新激活所有加载事件处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com