[英]AJAX call before document.ready
我有一个要求,其中 AJAX 调用必须在 document.ready 之前发生,并且来自 AJAX 调用的响应将用于更新一些 HTML 元素。
所以我有如下内容:
var ajaxget = $.ajax({
type: 'GET',
url:'/xxx/get',
success: function(resp) {
//logic
}
});
$(document).ready(function(){
$.when(ajaxget).done(function(resp) {
//do ur logic
$(documet).trigger("yyyy");
});
});
//the above part is common across pages and placed in the <head>
//below one goes into multiple places based on the pages
$(document).ready(function(){
$(document).on('yyyy', function() {
});
});
问题是触发事件“yyyy”不会在 IE 中执行,也不会在其他浏览器上间歇性执行。 请帮忙!
使用then()
而不是success
可能会更好,以确保在$.when.done
之前完成任何success
发生的事情
请注意, success
不是承诺链的一部分
尝试:
var ajaxget = $.ajax({
type: 'GET',
url: '/xxx/get'
}).then(function(resp) {
//logic
return resp;
});
$(document).ready(function() {
ajaxget.then(function(resp) {
//do ur logic
$(documet).trigger("yyyy");
});
});
但还要注意,如果所显示的顺序正确,您在注册之前也会触发该事件
这段代码对我有用。 简单地说,我在触发之前定义了“yyyy”事件。
$(document).ready(function () { $(document).on("yyyy", function () { console.log('triggered'); }); $.ajax({ type:'GET', url:'some.jsp',//your url success:function(resp){ //logic $(document).trigger("yyyy"); console.log(resp); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.