我有这个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文件中的函数
提前谢谢!
答案 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;致电申请。
编辑:似乎你想要附加到广场的图像事件。这应该可以解决问题:
$('#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
所述