Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 侦听不同元素上的多个触发事件后的触发功能_Javascript_Jquery_Angularjs_Javascript Events - Fatal编程技术网

Javascript 侦听不同元素上的多个触发事件后的触发功能

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插件,等待所

我使用的加载程序将等待angularJs指令完成。 反之亦然,如果我的指令先完成,img加载器必须在我的页面显示之前到达。 在指令完成执行之后,我将使用angular$timeout广播dom事件

$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;//接收