gpt4 book ai didi

javascript - 函数中的 jQuery 在文档就绪外部声明,但从内部调用

转载 作者:行者123 更新时间:2023-11-30 05:38:03 26 4
gpt4 key购买 nike

声明并附加到全局范围但具有依赖于 jQuery 的代码的函数是否可以始终如果仅从 jQuery 文档就绪 block 中调用它,它是否可以正常工作?

例如:

<script src = "https://code.jquery.com/jquery-2.1.0.js"></sript>
<script>

function myFunc(){ alert( $('#someElem').text() ); }

$(function(){

myFunct();
})

</script>

在实践中,我已经看到很多这样的做法,这些函数被写入到完全独立的文件中。我从未见过它失败,但我内心深处怀疑这是否真的安全。

我认为这至少部分取决于文档就绪是否等待页面加载的 javascript 编译阶段 完成。但是还有其他原因可能会失败吗?

请忽略有关污染全局 namespace 、可读性等的问题。我在这里只关心可靠的执行。

最佳答案

确实不能失败,查找元素的$()函数只有在myFunc函数执行时才会执行,那个函数只执行一次document.ready 触发,因此该元素将在那时可用。

全局 myFunc 函数也将始终可用,只要它在 DOM 中的 document.ready 代码之前定义。

在许多情况下,如果在 document.ready 代码之后定义它甚至可用,因为 DOMContentLoaded(和其他此类方法)是异步的并等待 DOM准备好了,但不能保证所有的脚本都会在那个时候加载,只是 DOM 中的元素是可用的,所以你通常应该确保 myFunc 函数定义在 之前$(function(){ ... }); 代码。

关于javascript - 函数中的 jQuery 在文档就绪外部声明,但从内部调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22405335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com