通过JQuery选项对象传递值

时间:2011-05-22 19:02:43

标签: javascript jquery callback

我在理解回调函数的工作原理时遇到了问题。

我正在使用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

2 个答案:

答案 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