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'):
});

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...