jQuery:裁剪以删除图像数据并替换为新数据
jQuery: cropit to remove image data and replace with a new one?
我正在使用cropit.js
jquery插件在浏览器中裁剪图像。插件网站在这里。
遇到的问题是我正在根据单击的图像动态加载图像。
第一张图像加载良好,一切正常。但是,如果我单击第二张图像或任何其他图像,它不会加载到裁剪器区域,并且由于某种原因,第一张图像总是卡在裁剪区域中。
我试图创建一个小提琴来解释这一点,但我认为由于一些安全原因,外部图像不会使用 cropit.js 加载。此外,jsfiddle 不允许 http: url,所以我无法启动和运行小提琴。但是我的代码结构是这样的:https://jsfiddle.net/hhshgeed/
您只需要在一个简单的html文件中本地运行它,所有可用的图像都与html文件位于同一文件夹中。此外,您还需要包括裁剪.js。
这是我的整个代码:
$('.position').live('click', function(){
var img = $(this).attr('src');
alert(img);
// Re-enables the cropper.
// Does the opposite to `disable` method.
$(function() {
$('.image-editor').cropit({
imageBackground: true,
imageBackgroundBorderWidth: 20,
imageState: {
src: ''+img+'',
}
});
$('.rotate-cw').click(function() {
$('.image-editor').cropit('rotateCW');
});
$('.rotate-ccw').click(function() {
$('.image-editor').cropit('rotateCCW');
});
$('.export').click(function() {
var imageData = $('.image-editor').cropit('export', {
type: 'image/webp',
quality: .9,
originalSize: true
});
});
});
});
正如您在我的代码中看到的那样,我正在尝试在 cropit src
函数中使用变量img
。这有效,但只有一次。
imageState: {
src: ''+img+'',
}
有人可以就这个问题提供建议,因为我实际上是在用头撞墙。
提前谢谢。
您需要使用 - 销毁当前裁剪实例 - $('.image-editor').cropit('destroy');
您已将
整个cropit
代码包装在 $(function() {});
块中。 我不认为这是你想要的,因为该功能仅在您第一次单击时触发。 您可以通过在该函数中抛出警报并单击几次来查看它失败;它仅在第一次点击时触发。
如果只是删除$(function() {});
块,则应触发其余代码,这可能会解决您遇到的问题。
相关文章:
- 添加新数据时D3.JS条形图列偏移量
- SVG使新数据保持可见
- 需要帮助使用 JQuery 将新数据放入表中
- jQuery:裁剪以删除图像数据并替换为新数据
- Jquery:为新数据创建寻呼机(next-prev按钮)
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- jQueryAJAX将数据重新加载到DOM中,或者使用新数据刷新DOM
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 如何更新数据库中新数据的视图
- 创建新数据和加载现有数据需要单独的视图吗
- 用新数据替换observableArray
- Wordpress在插入新数据后刷新表
- 使用主干上的新数据更改模型的数据
- D3.js将数据集映射到具有不同键的新数据集
- 仅当使用 AngularJS 从服务器中找到新数据时,才自动刷新数据
- 新数据行上的 SQL 更新列
- c3 加载新数据时 JS 滚动条跳转
- 使用Plotly中的新数据更新图形的高性能方法
- PHP、MySQL 和 Ajax:动态显示默认数据、选择现有数据或添加新数据
- JQuery 添加“滚动”按钮,并在有新数据可用时刷新主页