Javascript 通过JQuery选项对象传递值

Javascript 通过JQuery选项对象传递值,javascript,jquery,callback,Javascript,Jquery,Callback,我在理解回调函数如何工作时遇到了问题 我正在使用JCrop在一个页面上裁剪许多图像。JCrop是在这样一种印象下编写的,即可能只有一个图像需要裁剪: jQuery(函数() { CropMe.Jcrop //CropMe is the class holding the image ({ aspectRatio: 1, onSelect: updateCoords

我在理解回调函数如何工作时遇到了问题

我正在使用JCrop在一个页面上裁剪许多图像。JCrop是在这样一种印象下编写的,即可能只有一个图像需要裁剪:

jQuery(函数() {

              CropMe.Jcrop //CropMe is the class holding the image
              ({
                  aspectRatio: 1,
                  onSelect: updateCoords
              });
          }
      });
当它通过“onSelect”更新坐标时,它会输出函数“updateCoords”中的坐标 “以便在以后提交时以表格形式阅读:

函数updateCoords(c) {

              CropMe.Jcrop //CropMe is the class holding the image
              ({
                  aspectRatio: 1,
                  onSelect: updateCoords
              });
          }
      });
$('.x').val(c.x)

$('.y').val(c.y)

$('w').val(c.w)

$('.h').val(c.h); }

问题是,我在一个类下实例化了许多jcrop,而不是一个特定的id。因此,当调用updateCoords时,它不知道要更新哪些x、y、w、h值

如何通过option对象传递参数(特别是CropMe),以便更改4个相关值

相关代码:

然后,
updatewords
看起来像:

function updateCoords(c, cropMeObject) {
  // cropMeObject is the CropMe object
}

如果希望
this
关键字引用使用闭包的CropMe对象,则应该可以:

CropMe.Jcrop //CropMe is the class holding the image
  ({
      aspectRatio: 1,
      onSelect:    (function(c) { return updateCoords(c); })(c,this);
  });     

现在在function UpdateCords中,您可以参考
这个

,非常感谢Alex。工作非常完美。