我在一个页面上有多个document.ready函数,我希望在所有document.ready函数执行完后调用一个函数。我只是希望在所有其他document.ready函数执行完后,在最后调用该函数。例如,每个document.ready函数在执行时递增一个全局变量,最后一个函数需要在最后检查该变量的值。有什么想法吗?
azpvetkf1#
这就足够了:
$(function () { window.setTimeout(function () { // your stuff here }, 0);});
$(function () {
window.setTimeout(function () {
// your stuff here
}, 0);
});
字符串这将在 document ready 队列中的所有其他函数执行之后推迟函数的执行。
hmtdttj42#
第一个想法(对于小应用程序):整理你可以把所有的东西都放在一个$().ready()调用中。这可能需要重构,但在大多数情况下这是正确的做法。第二个想法:一个调解人[模式]创建一个中介器类,它将注册函数并调用其register()而不是$().ready()。当所有函数都注册后,您只需在集合上循环并在单个且唯一的$().ready()中运行它们,并且您在代码中有一个点,该点正好在所有执行之后。我目前正在开发一种jquery应用程序的框架,它有一个中介器。如果你感兴趣的话,我可能会把一个小版本的中介器放在一起。
yshpjwxd3#
为什么不叫它在所有其他人之后?
$(function(){ func1(); ... funcN(); functionThatNeedsToBeCalledAfter();});
$(function(){
func1();
...
funcN();
functionThatNeedsToBeCalledAfter();
字符串当然,你将不得不清理你的代码,只有一个地方使用文档准备功能......但这样你的代码将更具可读性,所以这是值得的。
anhgbhbe4#
有点小黑客,但可能会工作,在jquery范围内创建一个变量,如
$.imDone = false
字符串然后创建一个函数,在短时间内调用setError来查找变量ser为true
var theLastFunctionToCall = function(){ alert('I m the last being called!')}var trigger = function(){ $.imDone?theLastFunctionToCall():window.setTimeout(trigger,10);}trigger();
var theLastFunctionToCall = function(){
alert('I m the last being called!')
}
var trigger = function(){
$.imDone?theLastFunctionToCall():window.setTimeout(trigger,10);
trigger();
型我只建议当你在不同的大js文件中有不同的$(document).ready时,但如果你可以重构,我真诚地推荐一个最佳解决方案。
bd1hkmkf5#
我在这样编码的时候调用了这个函数,我想在页面的末尾清除cookie。我需要在页面中显示一些cookie。显示之后,它会清除cookie。该函数在header部分定义。
<script> ClearCookies();</script></body></html>
<script>
ClearCookies();
</script>
</body>
</html>
字符串
5条答案
按热度按时间azpvetkf1#
这就足够了:
字符串
这将在 document ready 队列中的所有其他函数执行之后推迟函数的执行。
hmtdttj42#
第一个想法(对于小应用程序):整理
你可以把所有的东西都放在一个$().ready()调用中。这可能需要重构,但在大多数情况下这是正确的做法。
第二个想法:一个调解人[模式]
创建一个中介器类,它将注册函数并调用其register()而不是$().ready()。当所有函数都注册后,您只需在集合上循环并在单个且唯一的$().ready()中运行它们,并且您在代码中有一个点,该点正好在所有执行之后。
我目前正在开发一种jquery应用程序的框架,它有一个中介器。如果你感兴趣的话,我可能会把一个小版本的中介器放在一起。
yshpjwxd3#
为什么不叫它在所有其他人之后?
字符串
当然,你将不得不清理你的代码,只有一个地方使用文档准备功能......但这样你的代码将更具可读性,所以这是值得的。
anhgbhbe4#
有点小黑客,但可能会工作,在jquery范围内创建一个变量,如
字符串
然后创建一个函数,在短时间内调用setError来查找变量ser为true
型
我只建议当你在不同的大js文件中有不同的$(document).ready时,但如果你可以重构,我真诚地推荐一个最佳解决方案。
bd1hkmkf5#
我在这样编码的时候调用了这个函数,我想在页面的末尾清除cookie。我需要在页面中显示一些cookie。显示之后,它会清除cookie。该函数在header部分定义。
字符串