我已经将多个函数的多个函数附加到$(document).ready并且希望附加一个函数以作为第一个$(document).ready处理或在$(document).ready处理程序之前独立触发。
有什么办法来处理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的开头触发自定义事件来触发a。
所以我想要一个通用的解决方案,我可以用它在jQuery的内部readyList或hook的开始处强制放置jQuery的ready函数,并安全地进行编辑,以便在readyList中的任何其他函数之前调用它。
[进一步编辑]
如果可能的话,我宁愿不用重新设计JavaScript代码的执行顺序或必须从功能分开触摸任何其他代码()。我知道重组,让我来解决这个问题,但我宁愿只写这样
$.beforeReady(function a() {});
当你需要beforeReady函数之前添加运行代码,你会做什么?你会添加一个beforeBeforeReady吗?有时你只需要咬紧牙关,做需要做的事情并修复代码,这样才有意义。 – 2010-11-04 16:19:53
@贾尼你可能有一个有效的观点。不过我宁愿创建一个beforeReady,然后用.bind(“loaded”)替换所有发生的.ready,并用.bind(“setup”)替换beforeReady。 – Raynos 2010-11-04 16:25:14
这个问题应该在下一个版本的jQuery中修复:https:// github.com/jquery/jquery/pull/80 – Mottie 2010-11-04 17:32:22