$.fn.
用于将此方法添加为jQuery插件。$.Map()
返回新数组 Math.Max.Apply
从数组返回最大数字
$.fn.tallest = function(outer, margins) {
var fn = outer ? "height" : "outerHeight";
return Math.max.apply(Math, $.map(this, function(el){return $(el)[fn](margins);}));
};
//var images=jquery(img 1.jpg, img 2.jpg, img 3.ipg, img 4.jpg);
var slidesHeight = images.tallest();
在这个我无法理解下面的行,但是要明白
如何.Map()有效
$.map(this, function(el) {return $(el)[fn](margins);})
$(el)[fn](margins)
//特别是此行如何返回图片的高度属性。
答案 0 :(得分:1)
$(el)[fn]
只是在$(el)
中调用方法的另一种方法,其名称事先未知。
$(el)[fn](margins)
与$(el).height(margins)
或$(el).outerHeight(margins)
相同,具体取决于fn
的值,该值取决于参数outer
的值。< / p>
当outer
为非虚假时,fn
将为"outerHeight"
,上述陈述将等同于$(el).outerHeight(margins)
如果outer
是假的,fn
将是"height"
,上述陈述将等同于$(el).height(margins)
答案 1 :(得分:0)
*编辑加入Felix Kling的笔记。
好的,让我们把它分解
$.map(this, function(el){return $(el)[fn](margins);})
$.map
是一个迭代集合并对集合中的每个元素执行传入函数并返回包含所有结果的数组的函数。
例如:
$.map([1,2], function(i) {return i + 1})
[2, 3]
this
指的是jQuery集合$.fn.tallest()
正在反对的集合。
例如:
$('tr').tallest() // => this would refer to all the tr's within the dom
$(el)[fn]
在JavaScript中,您可以使用常规点表示法调用绑定到接收器的函数,例如$(e1).height
,或者您可以使用括号表示法作为您提供的示例:$(e1)['height']
。
$(e1)[fn](margins)
margins
是函数height()
的传入参数。
希望这有帮助。