如何将数据从多个函数 returns 传递到 js/jquery 中的单个变量
How to pass data from multiple function returns to single variable in js/jquery
我有一个函数,它获取段落高度,并通过减去 100vh - 段落高度来计算图像高度,每次加载图像时。
导致效果不理想,我想减去这个函数得到的最高值
所以我认为最好的方法是将数据从多个负载传递到单个变量,然后选择最高的一个。虽然我是 js 初学者,不知道该怎么做。如果我错了,请纠正我。
$(".module img").one("load", function () {
var z = $(this).next('p').height()
console.log(z)
$('.module img').css({'height': 'calc(100vh - ' + z + 'px)'})
}).each(function() {
if(this.complete) {
//$(this).load(); // For jQuery < 3.0
$(this).trigger('load'); // For jQuery >= 3.0
}
});
像这样应该可以完成工作:
它只是将最大值存储在变量中并使用它
let maxHeight = 0;
$(".module img").one("load", function () {
var z = $(this).next('p').height()
if (z > maxHeight){
maxHeight = z;
}
console.log(z)
$('.module img').css({'height': 'calc(100vh - ' + maxHeight + 'px)'})
}).each(function() {
if(this.complete) {
//$(this).load(); // For jQuery < 3.0
$(this).trigger('load'); // For jQuery >= 3.0
}
});
我有一个函数,它获取段落高度,并通过减去 100vh - 段落高度来计算图像高度,每次加载图像时。
导致效果不理想,我想减去这个函数得到的最高值
所以我认为最好的方法是将数据从多个负载传递到单个变量,然后选择最高的一个。虽然我是 js 初学者,不知道该怎么做。如果我错了,请纠正我。
$(".module img").one("load", function () {
var z = $(this).next('p').height()
console.log(z)
$('.module img').css({'height': 'calc(100vh - ' + z + 'px)'})
}).each(function() {
if(this.complete) {
//$(this).load(); // For jQuery < 3.0
$(this).trigger('load'); // For jQuery >= 3.0
}
});
像这样应该可以完成工作:
它只是将最大值存储在变量中并使用它
let maxHeight = 0;
$(".module img").one("load", function () {
var z = $(this).next('p').height()
if (z > maxHeight){
maxHeight = z;
}
console.log(z)
$('.module img').css({'height': 'calc(100vh - ' + maxHeight + 'px)'})
}).each(function() {
if(this.complete) {
//$(this).load(); // For jQuery < 3.0
$(this).trigger('load'); // For jQuery >= 3.0
}
});