我在ASP.Net中有一个母版页,它通过AJAX下载各种文件,然后为我正在使用的库做一些初始化工作。我正在使用jQuery的$ .when()。然后使用语法。
我的个人页面要求在执行代码之前进行所有这些设置。现在,我在我的页面上使用$(function(){})语法。这个问题是,它在页面渲染后立即执行,但很久就在我的when.then构造完成之前。
有没有办法等待那个结构?初始化后,我可以以某种方式从我的母版页代码中激活自定义事件,并将我的内容页面功能附加到该事件吗?还是有更好的解决方案?
PS:为了说清楚,我们在这里讨论的是客户端代码!
答案 0 :(得分:2)
请勿在准备好的文档$(function () {})
中包装,而是在自定义事件中包装。
$(document).on('mycustom',function () {});
然后在then
$.when().then(something).then(function(){$(document).trigger("mycustom");});
答案 1 :(得分:2)
在母版页中,您可以将when / then链设置为变量,并继续在详细信息页面中将其链接。毕竟,它们是一页客户端。因此,只要初始链首先出现,您就可以随意添加它。
因此,您可以将第一个链设置为变量:
var eventChain = $.when(/.../).then(/.../);
然后在详细页面中:
eventChain.then(/.../);
因此,详细信息页面实际上只是在主页面停止的位置。