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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/js/151508.html

猜你在找的JavaScript相关文章