ready 事件中有很多业务判断和ajax请求,有些ajax请求又会触发别的事件及ajax请求。我希望在ready事件执行完,也就是业务判断,ajax执行完,并且触发的其他事件或ajax都执行完 以后做一些操作。
我需要等页面加载完,并且所有js都执行完成之后,页面上的按钮才能点击。
请问有没有办法。jquery deferred 我想不出该怎么用。
首先我ajax请求都是在onchange事件里,并且掺杂着业务判断。例如
if ($("#a").val() != "") {
        $("#a").change();
    }
经过测试,如果onchange里有ajax,不等我ajax执行完,onchange就已经触发done了。
$.when($("#a").change())
.done(function(){ alert("完成"); })第二个问题,如果我的ajax触发了其他的ajax,不会等我所有的ajax请求都完成才执行,只要第一个ajax执行完,就会触发done。
$.when($.ajax({ })).done(function () { alert("完成"); })