0

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

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

在模态窗口上有一个在 aviary 中编辑的按钮,它打开 aviary,加载图像。

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

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

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

在新加载时,一切都按预期工作,但在第二次加载时却不行。

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

Uncaught TypeError: Cannot call method 'isUsingHiResDimensions' of undefined 

有没有办法,一旦我关闭第一张图像上的模态以清除 aviary 的任何设置,下次让它重新开始?

我用这个函数调用 aviary:

$(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;
}

不知道除了页面刷新之外我需要做什么来清除并重新开始,感谢任何帮助。

4

1 回答 1

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'));
    });
});
于 2013-11-03T12:25:59.337 回答