同一功能上的多个“用户选项”参数

Posted

技术标签:

【中文标题】同一功能上的多个“用户选项”参数【英文标题】:Multiple "user option" parameters on the same function 【发布时间】:2014-06-19 15:03:26 【问题描述】:

不知道我在问题标题中的术语是否正确,抱歉。随意修改。

我需要知道如何在jquery 函数上分配多个参数。

我的函数目前是这样写的:

$(document).ready(function() 
    $('#crop-me').Jcrop(
        aspectRatio: 130 / 170,
        minSize: [130, 170],
        setSelect: [260, 340, 0, 0],
        onChange: showCoords,
        onSelect: showCoords
    );
    function showCoords(c) 
        ...
    
    function updatePreview(d) 
        ...
    
);

但我还需要将updatePreview 分配给onChange:onSelect:。我该怎么做?

我尝试了以下方法:

onChange: showCoords updatePreview

onChange: [showCoords, updatePreview]

onChange: showCoords,
onChange: updatePreview

但这三种方法似乎都不起作用。我该怎么做?

【问题讨论】:

【参考方案1】:

您需要为调用这两个函数的参数提供一个匿名函数:

onChange: function(c) 
    showCoords(c);
    updatePreview(c);

【讨论】:

【参考方案2】:

在这里你要做的是传递一个anonymous function,在其中你可以调用你想要的其他函数。

看起来像这样:

$('#crop-me').Jcrop(
    ...
    onChange: function() 
      showCoords();
      updatePreview();
    ,
    ...
);

如果您想保留传递给函数的所有参数,您可以使用每个函数中存在的arguments variable。这个变量是一个类数组,包含传递给函数的所有参数。

$('#crop-me').Jcrop(
    ...
    onChange: function() 
      showCoords( arguments );
      updatePreview( arguments );
    ,
    ...
);

MDN javascript documentation 对 arguments 变量有这样的说法:

arguments 对象是所有函数中可用的局部变量;不能再使用作为 Function 属性的参数。

您可以使用 arguments 对象在函数中引用函数的参数。该对象包含传递给函数的每个参数的条目,第一个条目的索引从 0 开始。

【讨论】:

以上是关于同一功能上的多个“用户选项”参数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python-click为同一组中的cmd使用相同的选项

同一函数上的不同参数类型[重复]

SSRS超链接到同一电子表格上的选项卡

我可以使用.click功能切换WhatsApp Web中的用户选项卡吗?

同一画布上的多个图形

Linux命令——loginlogoutnologin