在前一个js函数结束完成后运行js函数

时间:2015-12-15 07:26:48

标签: javascript jquery html

我有这个js函数

.video-container {
    position: absolute;
    top: 0%;
    left: 0%;
    height: 700px;
    width: 100%;
    overflow: hidden;
}

video { max-width: 100%; min-width: 100%; min-height: 100%; }

基本上这是免费的图像galery。根据所有者说明,上面的代码必须包含在带有图片的html之后:http://galleria.io/

问题是这个函数从html中重新创建了新的元素,并且每次加载页面时它都会在不同的时间内完成。 js脚本所需的时间各不相同,因为使用此库js的每个页面具有不同数量的图像,因此执行时间不同。 我需要运行另一个函数:

$('#galleria').galleria({
  show:<?php echo $show;?>,
  autoplay: 3000,
  extend: function(options) {
    var gallery = this; // "this" is the gallery instance

    this.bind('image', function(e) {
      var curr = gallery.getData(gallery.getIndex());
      var currOrig = curr.original;
      var altTxt = $(currOrig).attr('alt');
      $(e.imageTarget).attr('alt',altTxt);
    });
    this.bind('thumbnail', function(e) {
      var thumb = gallery.getData(e.index);
      var thumbOrig = thumb.original;
      var altText = $(thumbOrig).attr('alt');
      $(e.thumbTarget).attr('alt',altText);
    });
  }
})

从现成的html中获取一个元素并使用它做一些事情。如果我将此函数设置为在文档就绪或onload上运行,则该函数无法找到该元素,因为第一个函数仍在使用html。我试图延迟secong js函数的执行,但正如我在上面解释的那样,每个页面都有不同数量的图像,我无法预测第一个函数需要多长时间才能结束。

我怎样才能圈出这种愚蠢的情况?

请指教。 P.S。

我也试过这个:

load_img_comments('<?php echo $image;?>','<?php echo $imagename;?>','','i');

但它返回错误:TypeError:r.push不是主jquery.js文件中的函数

提前谢谢!

1 个答案:

答案 0 :(得分:0)

这是在前一个js函数结束后运行js函数的方法:

var tempFunc =  FunctionToAppendTo; //note: no () at the end
FunctionToAppendTo = new Function(param1, param2){
  tempFunc.apply(this, arguments);

  //your new code goes here...

};

注意:您可能需要使用正确的&#34;此&#34;致电申请。

来源:applygetting arguments

编辑:似乎你想要附加到广场的图像事件。这应该可以解决问题:

$('#galleria').galleria({
show:<?php echo $show;?>,
autoplay: 3000,
extend: function(options) {
  var gallery = this; // "this" is the gallery instance

  this.bind('image', function(e) {
    var curr = gallery.getData(gallery.getIndex());
    var currOrig = curr.original;
    var altTxt = $(currOrig).attr('alt');
    $(e.imageTarget).attr('alt',altTxt);

    load_img_comments('<?php echo $image;?>','<?php echo $imagename;?>','','i'));
  });
  this.bind('thumbnail', function(e) {
    var thumb = gallery.getData(e.index);
    var thumbOrig = thumb.original;
    var altText = $(thumbOrig).attr('alt');
    $(e.thumbTarget).attr('alt',altText);
  });
}

})

或者您可以在外部附加您的功能,如here

所述