Javascript 侦听不同元素上的多个触发事件后的触发功能
我使用的加载程序将等待angularJs指令完成。 反之亦然,如果我的指令先完成,img加载器必须在我的页面显示之前到达。 在指令完成执行之后,我将使用angular$timeout广播dom事件Javascript 侦听不同元素上的多个触发事件后的触发功能,javascript,jquery,angularjs,javascript-events,Javascript,Jquery,Angularjs,Javascript Events,我使用的加载程序将等待angularJs指令完成。 反之亦然,如果我的指令先完成,img加载器必须在我的页面显示之前到达。 在指令完成执行之后,我将使用angular$timeout广播dom事件 $timeout(function() { var DirectivesEnded = new Event('DirectivesEnded'); document.dispatchEvent(DirectivesEnded); }, 5000); 我也在使用jquery插件,等待所
$timeout(function() {
var DirectivesEnded = new Event('DirectivesEnded');
document.dispatchEvent(DirectivesEnded);
}, 5000);
我也在使用jquery插件,等待所有img加载
$images = $("img");
imagesLoaded($images).on('done', function (instance, image) {
});
在两个事件都被触发后,我想执行这些代码行,使加载程序的html层消失
$(".lazy-load").animate({
'opacity': 0
}, 300, "linear", function () {
setTimeout(function () {
$(".lazy-load").hide();
}, 10);
});
这两个事件和函数都分别运行。但我的目标是将两者结合起来。有人知道怎么做吗?如果您只想在获取数据之前显示一个简单的加载程序,只需使用角度方式即可实现,代码可以如下所示:
<div ng-show="ctrl.loading" ng-include="'assets/templates/loader.tpl.html'"> Loading ... </div>
<div ng-hide="ctrl.loading">Content</div>
//In controller, set ctrl.loading to false after fetching the data.
正在加载。。。
内容
//在控制器中,在获取数据后将ctrl.loading设置为false。
如果我能很好地理解你的问题,这应该可以完成以下工作:
var check_sum = 0;
$timeout(function() {
var DirectivesEnded = new Event('DirectivesEnded');
document.dispatchEvent(DirectivesEnded);
check_sum++;
finished();
}, 5000);
$images = $("img");
imagesLoaded($images).on('done', function (instance, image) {
check_sum++;
finished();
});
function finished() {
if(check_sum==2) check_sum=0;
else return;
$(".lazy-load").animate({
'opacity': 0
}, 300, "linear", function () {
setTimeout(function () {
$(".lazy-load").hide();
}, 10);
});
}
因此,在加载所有图像后,是否要执行
timeout
中的内容?我正在尝试此解决方案,但无法从角度超时获取校验和。它未定义。我试图从窗口和rootscope获取它,但它不存在。angular.min.js:119 ReferenceError:校验和不正确defined@hich_ham我一点也不知道,您尝试过像这样保存并从window对象获取window.check\u sum=0;//定义
窗口。检查_sum++;//递增
window.check_sum;//接收
?