Ray*_*nos 11 javascript jquery events document-ready
我已将多个文件中的多个函数附加到$(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() {});
Run Code Online (Sandbox Code Playgroud)
函数a首先需要与订单无关,但只能在几页上调用.我不能保证b或c的顺序,所以我不能在b或c的开头触发自定义事件来触发a.
所以我想要一个通用的解决方案,我可以用它来强制放置一个jQuery的内部readyList或挂钩到jQuery的ready函数的开头并安全地编辑它,所以它在readyList中的任何其他函数之前调用它.
[进一步编辑]
如果可能的话,我宁愿不必重新设计javascript代码执行顺序,或者除了函数a()之外还必须触及任何其他代码.我知道重组可以让我解决这个问题,但我宁愿只写一个函数
$.beforeReady(function a() {});
Run Code Online (Sandbox Code Playgroud)
Jac*_*kin 16
这将是我将触发所有其他文件所需的自定义事件的时间bind,您将只有一个ready处理程序,它会执行操作,然后触发自定义事件.
因此,$(document).ready您可以使用代码中的其他位置,而不是使用
$(window).bind('setup', function() {
//code here...
});
Run Code Online (Sandbox Code Playgroud)
和/或
$(window).bind('loaded', function() {
//some other code here...
});
Run Code Online (Sandbox Code Playgroud)
在你唯一的ready处理程序中,你会做这样的事情:
$(document).ready(function() {
$(window).trigger('setup');
$(window).trigger('loaded'):
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23886 次 |
| 最近记录: |