【问题标题】: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

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

【问题讨论】:

    标签: jquery jcrop


    【解决方案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 开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        相关资源
        最近更新 更多