不知道我的术语在问题标题中是否正确。随意修改。
我需要知道如何在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
但这三种方式似乎都不起作用。我该怎么做?
答案 0 :(得分:4)
您需要为该参数提供一个匿名函数,该函数调用这两个函数:
onChange: function(c) {
showCoords(c);
updatePreview(c);
}
答案 1 :(得分: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对象是所有函数中可用的局部变量;作为Function属性的参数不能再使用了。
您可以使用arguments对象引用函数中的函数参数。该对象包含传递给函数的每个参数的条目,第一个条目的索引从0开始。