jquery 从函数内部调用$(document).ready()安全吗?

enxuqcxy  于 2022-12-12  发布在  jQuery
关注(0)|答案(3)|浏览(127)

如果我在一个函数中使用$(document).ready()处理程序,它是否仍然能保证只有当文档就绪时,它内部的代码才会运行,即使文档就绪事件在过去已经发生过?

ujv3wf0j

ujv3wf0j1#

是的,我知道
从jQuery的ready函数source中提取。

// Catch cases where $(document).ready() is called after the
// browser event has already occurred.
if ( document.readyState === "complete" ) {
    // Handle it asynchronously to allow scripts the opportunity to delay ready
    return setTimeout( jQuery.ready, 1 );
}
plicqrtu

plicqrtu2#

jQuery有几种方法来设置这样的处理程序,唯一“不安全”的方法是$(document).bind("ready", handler) . From the jQuery docs
以下三种语法都是等效的:

  1. $(document).ready(handler)
  2. $().ready(handler)(不建议使用)
  3. $(handler)
    还有$(document).bind("ready", handler),其行为类似于ready方法,但有一个例外:如果ready事件已经触发,并且您尝试.bind("ready"),则绑定的处理程序将不会执行。以这种方式绑定的Ready处理程序将在上述其他三个方法绑定之后执行。
pdtvr36n

pdtvr36n3#

是的,你可以把它放在一个函数里,只要你调用这个函数,它就会被激活.

相关问题