2011-05-22 179 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:重新應該工作。