有没有办法确定函数是否在文档就绪中运行?

g.p*_*dou 5 javascript jquery

有没有办法确定函数是否在文档就绪中运行?

我的意思是这样的:

function myfunction() {
    var isinside = //... what to write here?
    if (isinside) {
    }
}
Run Code Online (Sandbox Code Playgroud)

(我的(非常初学者)概念也可能不是最优的,所以我写下了我想要实现的目标:

我想创建一个可重用的对象,可以在页面中的多个实例中实例化(希望每个实例有一行JavaScript).但是,有些东西在文档就绪时必须做什么,比如附加事件处理程序.)

Gon*_*ing 5

我不确定你为什么在这里遇到问题?调用代码通常负责处理DOM就绪处理程序,而不是函数.

如果需要,您可以在任何函数内部冗余地放置DOM ,但这听起来很奇怪,因此您需要显示其余的代码.

例如,任何函数都可以拥有DOM就绪处理程序:

function myfunction() {
    $(document).ready(function(){
         // I am inside DOM ready!
         // Connect my DOM element events here
    });
    // Do my other non-element stuff here
}
Run Code Online (Sandbox Code Playgroud)

或者,更短:

function myfunction() {
    $(function(){
         // I am inside DOM ready!
         // Connect my DOM element events here
    });
    // Do my other non-element stuff here
}
Run Code Online (Sandbox Code Playgroud)

这里的关键是DOM就绪处理程序可以在DOM就绪后调用,并立即触发.

这样做的缺点是您不能依赖返回值,因为DOM ready可能是异步的.

  • @Barmar:我明白了,但为什么他会*有条件地照顾?:) (4认同)