Aviary图像编辑器在第二张图像上失败

时间:2013-11-03 12:19:11

标签: jquery aviary

我正在将鸟舍链接到文件管理器中以编辑文件存储中的图像。

从一系列拇指开始,一旦用户点击它,我就会将图像打开到模态窗口中,在打开模态窗口之前更新图像的src属性

在模态窗口上有一个用于在鸟舍中编辑的按钮,用于打开鸟舍,加载图像。

如果我点击thumb1然后编辑图像,一切都按预期工作。我在编辑thumb2时遇到了问题。

它会在模态窗口中打开正确的图像,然后按预期正确打开鸟舍中的图像。但是 - 在加载鸟舍窗口的初始调整大小时会出现问题。

最初显示临时图像,然后在此图像后面调整大小(显示更大的图像)。临时图像保留在屏幕上,然后是鸟舍。

在新的负载下,一切都按预期工作,但不是第二次加载。

我在控制台日志中可以看到的错误是:

Uncaught TypeError: Cannot call method 'isUsingHiResDimensions' of undefined 

有没有办法,一旦我关闭第一张图像上的模态以清除鸟舍的任何设置,下次就开始干净利落?

我正在使用此功能调用鸟舍:

$(document).ready(function() {
    $('.thumbnail').click(function(event) {
        var imagePreview = $('#image1');
        imagePreview.attr('src',$(this).attr('href'));
        $('#editImageLink').click(function(event) {
            return launchEditor('image1', imagePreview.attr('src'));
        });
        $('#imagePreview').modal('show');
        return false;
    });
});

我的鸟舍初始化在这里:

var featherEditor = new Aviary.Feather({
    apiKey: 'mycode',
    apiVersion: 3,
    theme: 'dark', // Check out our new 'light' and 'dark' themes!
    tools: 'all',
    appendTo: '',
    onSave: function(imageID, newURL) {
        var img = document.getElementById(imageID);
        img.src = newURL;
    },
    onError: function(errorObj) {
        alert(errorObj.message);
    }
});
function launchEditor(id, src) {
    featherEditor.launch({
        image: id,
        url: src
    });
    return false;
}

不知道除了页面刷新之外我需要做什么来清除和重新开始,我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您将越来越多的点击事件绑定到editImageLink,因此其中的代码不止一次运行。

正确的绑定是:

$(document).ready(function() {
    var imagePreview = $('#image1');

    $('.thumbnail').click(function(event) {
        imagePreview.attr('src',$(this).attr('href'));
        $('#imagePreview').modal('show');
        return false;
    });

    $('#editImageLink').click(function(event) {
        return launchEditor('image1', imagePreview.attr('src'));
    });
});