微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在$(document).ready()之前运行一个函数触发器

我将多个文件中的多个函数附加到$(document).ready中,并希望将单个函数附加在它们之前,作为$(document).ready处理的第一个或在$(document)之前独立触发的函数,处理程序.

有什么办法可以处理jQuery在内部触发的函数的顺序,作为jQuery.fn.ready的一部分,还是挂钩在jQuery.fn.ready之前调用函数.

在第三方脚本中编辑jQuery.fn.ready可以安全地做,否则会导致其他第三方插件的可怕的敲击效果(除了编辑jQuery.fn.ready本身的插件)

[编辑]:

举个例子

$(document).ready(function b() {});
....
$(document).ready(function a() {/* optional setuP*/});
....
$(document).ready(function c() {});

功能需要首先发生与订单无关,但只能在几页上调用.我不能保证b或c的顺序,所以我不能在b或c的开始触发自定义事件.

所以我想要一个通用的解决方案,我可以用来强制放置在jQuery的内部readyList或钩子开始jQuery的准备好的功能,并安全地编辑它,所以它调用之前的任何其他功能在readyList.

[进一步编辑]

如果可能,我宁可不必重新设计javascript代码执行顺序,或者除了功能a()之外还要触摸任何其他代码.我知道重组将允许我解决这个问题,但我宁愿只写一个单一的功能

$.beforeReady(function a() {});

解决方法

这将是一个时间,我会触发一个自定义事件,所有其他文件将绑定,你只有一个准备好的处理程序,这将做的东西,然后触发自定义事件.

所以,你的代码中的其他地方,而不是使用$(document).ready,你会使用

$(window).bind('setup',function() {
   //code here...
});

和/或

$(window).bind('loaded',function() {
   //some other code here...
});

而在您唯一的处理程序中,您可以执行以下操作:

$(document).ready(function() {
   $(window).trigger('setup');
   $(window).trigger('loaded'):
});

原文地址:https://www.jb51.cc/js/151508.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐