通过 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 选项对象传递值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JQuery 将对象数据传递到节点服务器并保存到 mongodb?
如何 curry jQuery 方法——哪个`this`值将传递 jQuery 对象?