【发布时间】:2018-07-23 11:29:52
【问题描述】:
在按钮单击的主文档中,我正在加载一些 div 的内容
$("#my_div").load(function() {
alert("Loaded");
});
加载的内容只是脚本
<script>
alert("Init outside");
$(document).ready(function() {
alert("Init inside");
}
</script>
警报顺序是“Init outside”、“Loaded”、“Init inside”。
我是否正确,这是在脚本正文中初始化加载脚本的正确方法,这意味着alert("Init outside") 所在的位置?不在.ready() 处理程序中?
因为在我的实际工作流程中,我肯定需要在处理 .load() 回调之前初始化脚本。在.load() 回调中,我正在显示加载的模式,但在此之前,模式应该自行初始化,即设置on('show.bs.modal') 处理程序等。
很奇怪,如果我需要这样的序列,初始化应该发生在$(document).ready()处理程序之外,所以这就是我问的原因。
UPD:这个问题不是重复的,因为它更多地与 JQuery 定义的初始化和回调序列相关。
【问题讨论】:
-
在
$(document).ready()或.load()事件中您真正想要的唯一内容是引用页面上的元素的内容。例如,任何使用 jQuery 选择器的东西都需要等待页面加载,因此它要么必须在ready事件中,要么在文档加载后由某些东西触发。 -
在我的场景中,我肯定需要在 loaded 内容中引用元素,即为引导模式设置 on('show.bs.modal') 处理程序,所以看起来.ready 是正确的地方。唯一的问题是它在 after .load() 处理程序中显示此模式,因此我的 on('show.bs.modal') 处理程序没有被调用。
标签: javascript jquery