Jquery 如何确保DOM对象在调用函数之前已呈现?

Jquery 如何确保DOM对象在调用函数之前已呈现?,jquery,jcrop,Jquery,Jcrop,我使用的是jquery插件(),它的一个选项由DOM元素的值设置 jQuery(function($){ var CircleSel = function(){ }; CircleSel.prototype = new $.Jcrop.component.Selection(); $.extend(CircleSel.prototype,{ zoomscale: $('#img_container').data('zoomscale'), # more stuff..

我使用的是jquery插件(),它的一个选项由DOM元素的值设置

jQuery(function($){
  var CircleSel = function(){ };
  CircleSel.prototype = new $.Jcrop.component.Selection();
  $.extend(CircleSel.prototype,{
    zoomscale: $('#img_container').data('zoomscale'),
    # more stuff......
问题是,“#img_container”仅在页面加载后由jcrop创建,因此zoomscale被设置为null。我想不出任何其他方法来获得这个值-我需要
#img_容器
的zoomscale,它是根据宽度计算的,以确保作物从原始图像正确定位

我想我需要延迟
CircleSel
函数,或者强制执行严格的命令,以确保在运行
CircleSel
之前完成
#img_容器的呈现


这扩展了我有限的javascript知识,但我想学习如何使用jquery/javascript实现这一点。感谢对必要函数或示例的任何建议或提示

“确保在运行CircleSel之前完成
#img_容器的呈现。”是否尝试使用
.ready()
处理程序?这是在
文档.ready
上调用的函数的一部分。但是这个函数有两个部分。我们初始化插件“$”(“#DOMobject”).Jcrop`,而CircleSel扩展插件。初始化功能将
#img_容器
添加到页面。如何使用
.ready()
,以便在Jcrop完成时运行CircleSel?如果可能的话,感谢您提供一个代码示例?如何确定
jcrop
何时完全初始化?问题不是“#img_container”不存在。这就是为什么你可以在DOM上初始化插件的原因。问题是它的数据属性“zoomscale”在您需要时没有计算出来。从我看到的文档中,它的init api$(“#target”).Jcrop(options,callback)有可选回调;