通过 JQuery 选项对象传递值

Posted

技术标签:

【中文标题】通过 JQuery 选项对象传递值【英文标题】:Passing value through JQuery options object 【发布时间】:2011-05-22 19:02:42 【问题描述】:

我无法理解回调函数的工作原理。

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

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

$('.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

【讨论】:

非常感谢亚历克斯。完美运行。【参考方案2】:

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

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

现在可以在函数 updateCoords 中引用this

【讨论】:

以上是关于通过 JQuery 选项对象传递值的主要内容,如果未能解决你的问题,请参考以下文章

从对象 php 的 jquery 数组中设置值?

如何使用 JQuery 将对象数据传递到节点服务器并保存到 mongodb?

Jquery9 事件对象

如何 curry jQuery 方法——哪个`this`值将传递 jQuery 对象?

如何通过传递对象使用 [ngstyle] 将网格行和网格列动态传递到角度 div 选项卡

jQuery 插件拓展