我在理解回调函数的工作原理时遇到了问题。
我正在使用JCrop在页面上裁剪许多图像。 JCrop的印象是,可能只有1张图片需要裁剪:
的jQuery(()的函数 {
CropMe.Jcrop //CropMe is the class holding the image ({ aspectRatio: 1, onSelect: updateCoords }); } });
当它通过“onSelect”更新坐标时,它会输出函数“updateCoords”中的坐标 “以便稍后在提交时以表格形式阅读:
功能updateCoords(c) {
$( 'X')VAL(c.x);
$( 'Y')VAL(c.y);
$( '瓦特')VAL(c.w);
$( '小时。')VAL(c.h)。 }
问题是,我在一个类下实例化了多个Jcrops,而不是一个特定的id。因此,当调用updateCoords时,它不知道要更新哪个x,y,w,h值。
如何通过选项对象传递参数(特别是CropMe),以便我可以更改4个相关值
相关代码:jquery.jcrop,js
答案 0 :(得分:1)
CropMe.Jcrop //CropMe is the class holding the image
({
aspectRatio: 1,
onSelect: function(c) { updateCoords(c, CropMe); }
});
然后updateCoords
看起来像:
function updateCoords(c, cropMeObject) {
// cropMeObject is the CropMe object
}
答案 1 :(得分:0)
如果希望this
关键字使用闭包引用CropMe对象应该有效:
CropMe.Jcrop //CropMe is the class holding the image
({
aspectRatio: 1,
onSelect: (function(c) { return updateCoords(c); })(c,this);
});
现在在函数updateCoords中,您可以参考this
。