2011-05-22 112 views
0

我在理解回调函数的工作方式时遇到了问题。通过JQuery选项对象传递值

我使用JCrop在页面上裁剪很多图像。 JCrop在印象下写入,有可能仅是1个图像需要被裁剪:

jQuery的(函数() {

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

当通过 “ONSELECT” 更新的坐标它输出在函数中COORDS“updateCoords ”,使得它们可以以形式被读取以后提交:

功能updateCoords(c)中 {

$('。x')。val(c.x); ('。y')。val(c.y);

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

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

我将如何通过选择对象传递的参数(特别是CropMe),这样我可以改变4个相关的值

相关代码:jquery.jcrop,js

回答

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 
} 
+0

非常感谢Alex。完美的作品。 – lewicki 2011-05-22 19:16:39

0

如果您希望this关键字使用closu引用CropMe对象现在

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

在功能updateCoords你可以参考this:重新应该工作。