将jquery函数作为变量参数传递给自定义函数

用户名

我正在写一个函数,该函数计算最大的高度/宽度,并使元素的高度/宽度相同。我想将2个参数传递给此函数:

1. The selector, which can be(element, class )
2. jQuery `width()` / `height()` function

并且期望的结果应该是看起来像这样的函数。

Eg 1. equalDimensions('.class', width() ); OR
Eg 2. equalDimensions( div, height() );

并根据传递给函数的内容width()/height()将计算出最大的高度/宽度,并使作为第一个参数传递的所有选择器的宽度/高度相等。

作为jQuery的新手,我正在努力将其放入代码中。

到目前为止,这是我尝试过的...

var equalDimension = function(  selector,  fn ){
    var dimension = fn();
    var biggestDimemsion = 0;
    $(selector).each(function(){
        if($(this).dimension > biggestDimemsion){
            biggestDimemsion = $(this).dimension;
        }
    });
    $(selector).each(function(){
        $(this).dimension(biggestDimemsion);
    });
};
罗伯特·梅塞尔(Robert Messerle)

我写了一个简短的示例说明如何解决此问题:

http://jsfiddle.net/3NRah/

var equalDimension = function (selector, fn) {
    var $elements = $(selector),
        dimensions = $elements.map(function (i) {
            return $elements.eq(i)[fn]();
        }),
        maxDimension = Math.max.apply(Math, dimensions);
    $elements[fn](maxDimension);
};

equalDimension('div', 'height');

假设您传递的是jQuery函数的名称,而不是函数本身。如果要传递实际函数,则如下所示:

http://jsfiddle.net/3NRah/1/

var equalDimension = function (selector, fn) {
    var $elements = $(selector),
        dimensions = $elements.map(function (i) {
            return fn.call($elements.eq(i));
        }),
        maxDimension = Math.max.apply(Math, dimensions);
    fn.call($elements, maxDimension);
};

equalDimension('div', $.fn.height);

编辑:在为此创建一个干净的UI方面,我最有可能在下面的JSBin中添加它。

http://jsbin.com/pogujozane/edit?js,输出

$.fn.equalDimension = function (fn) {
    var $elements = $(this),
        dimensions = $elements.map(function (i) {
            return $elements.eq(i)[fn]();
        }),
        maxDimension = Math.max.apply(Math, dimensions);
    $elements[fn](maxDimension);
};
$.fn.equalHeight = function () {
  return $(this).equalDimension('height');
};
$.fn.equalWidth = function () {
  return $(this).equalDimension('width');
} 

这样就可以这样称呼它:

$('div').equalHeight();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

来自分类Dev

将方向作为变量传递给jquery动画函数

来自分类Dev

将jQuery插件作为参数传递给函数。

来自分类Dev

将内联函数定义作为输入参数传递给函数

来自分类Dev

将函数作为参数传递给函数

来自分类Dev

对于C ++ sort(),如何将参数传递给自定义比较函数?

来自分类Dev

如何将参数输入传递给R中的自定义函数?

来自分类Dev

将变量作为参数传递给VBA中的函数

来自分类Dev

将当前文本作为参数传递给jquery函数

来自分类Dev

如何将参数作为函数传递给变量?

来自分类Dev

MATLAB-将参数传递给pdist自定义距离函数

来自分类Dev

R将变量传递到自定义函数purrr

来自分类Dev

当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

来自分类Dev

将函数传递给自定义react钩子

来自分类Dev

如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

来自分类Dev

将jquery作为参数传递给自动执行函数

来自分类Dev

将数组作为函数参数传递而不定义变量

来自分类Dev

将自定义函数传递给jquery对象

来自分类Dev

如何将函数作为参数传递给Javascript中的自定义函数

来自分类Dev

将内联函数定义作为输入参数传递给函数

来自分类Dev

如何将参数输入传递给R中的自定义函数?

来自分类Dev

将索引传递给自定义orderBy函数

来自分类Dev

将函数参数传递给已定义的变量

来自分类Dev

将jquery变量传递给php函数作为参数

来自分类Dev

SSRS自定义装配-将参数传递给构造函数

来自分类Dev

将属性作为函数传递给Polymer中的自定义元素

来自分类Dev

将默认参数和自定义参数传递给槽函数

来自分类Dev

将变量作为参数传递给 angularjs 中的 setInterval 函数

来自分类Dev

将函数作为参数传递给函数

Related 相关文章

  1. 1

    如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

  2. 2

    将方向作为变量传递给jquery动画函数

  3. 3

    将jQuery插件作为参数传递给函数。

  4. 4

    将内联函数定义作为输入参数传递给函数

  5. 5

    将函数作为参数传递给函数

  6. 6

    对于C ++ sort(),如何将参数传递给自定义比较函数?

  7. 7

    如何将参数输入传递给R中的自定义函数?

  8. 8

    将变量作为参数传递给VBA中的函数

  9. 9

    将当前文本作为参数传递给jquery函数

  10. 10

    如何将参数作为函数传递给变量?

  11. 11

    MATLAB-将参数传递给pdist自定义距离函数

  12. 12

    R将变量传递到自定义函数purrr

  13. 13

    当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

  14. 14

    将函数传递给自定义react钩子

  15. 15

    如何将System.Xml.XmlElement作为自定义Powershell函数的管道参数传递?

  16. 16

    将jquery作为参数传递给自动执行函数

  17. 17

    将数组作为函数参数传递而不定义变量

  18. 18

    将自定义函数传递给jquery对象

  19. 19

    如何将函数作为参数传递给Javascript中的自定义函数

  20. 20

    将内联函数定义作为输入参数传递给函数

  21. 21

    如何将参数输入传递给R中的自定义函数?

  22. 22

    将索引传递给自定义orderBy函数

  23. 23

    将函数参数传递给已定义的变量

  24. 24

    将jquery变量传递给php函数作为参数

  25. 25

    SSRS自定义装配-将参数传递给构造函数

  26. 26

    将属性作为函数传递给Polymer中的自定义元素

  27. 27

    将默认参数和自定义参数传递给槽函数

  28. 28

    将变量作为参数传递给 angularjs 中的 setInterval 函数

  29. 29

    将函数作为参数传递给函数

热门标签

归档