我正在尝试使用以下每个()函数
扫描DOM中的所有样式表$("link").each(function(){
$.get($(this).attr('href'), function() {
// Some Code...
});
});
此代码工作正常但我希望回调知道所有样式表已被扫描&之后运行另一个功能。是否有可能实现这一目标?
答案 0 :(得分:8)
创建一个$.Deferred
个对象数组:
var jqXHRs = $("link").map(function() {
return $.get($(this).attr('href'), function () {
// Some code...
});
});
$.when.apply(null, jqXHRs.get()).done(
function() {
// All done
}
);
答案 1 :(得分:1)
为什么在通过document.styleSheets
API查询每个样式表时,您是否只是通过AJAX再次加载每个样式表(它们已经在页面中加载了一次)?
for (var i in document.styleSheets) {
/* code here involving cssText or whatever */
}
由于这种方法会构成同步操作,因此您不需要回调 - 您只需在循环后立即放置'回调'代码。