我有一个ASP.NET MVC应用程序,我使用两个JQuery插件:colorbox和jcrop。我的问题是使用colorbox resize功能。将内容加载到颜色框后,我调用resize函数调整颜色框的大小以更好地适应其内容。除了之后我立即将jcrop插件添加到混音中之外,这种方法效果很好。在颜色框调整大小功能完成之前,Jcrop稍微触发。因此,它会扭曲jcrop的数据。这会导致裁剪工具跳转到初始移动,如下例所示:
请注意,在上面的例子中,裁剪选择器会在初始移动时跳转,如下所示:
jQuery Jcrop setSelect shows visually, but when clicked to move, it jumps
我发现停止此操作的唯一方法是将jcrop位包装在setTimeout()
中并将代码延迟1秒以确保在代码触发之前完成调整大小,如下例所示: / p>
现在当您拖动裁剪区域时,它首先不会跳转。使用setTimeout()
肯定是我不喜欢的黑客,所以我想知道是否有人有任何建议。如果只有jQuery.colorbox.resize()
在其设置对象上接受了回调函数。
谢谢!
答案 0 :(得分:2)
在GitHub的colorbox开发版中,有一个提交可以解决你的问题 见here
我认为您应该编辑jquery.colorbox.js文件中的函数resize
以接受回调参数。如链接所示。
@@ -450,7 +450,7 @@
});
};
- publicMethod.resize = function (options) {
+ publicMethod.resize = function (options, loadedCallback) {
if (open) {
options = options || {};
@@ -475,7 +475,7 @@
}
$loaded.css({height: settings.h});
- publicMethod.position(settings.transition === "none" ? 0 : settings.speed);
+ publicMethod.position(settings.transition === "none" ? 0 : settings.speed, loadedCallback);
}
};
祝你好运!