带有 ajax 图像更新的 jquery guillotine 插件

Posted

技术标签:

【中文标题】带有 ajax 图像更新的 jquery guillotine 插件【英文标题】:jquery guillotine plugin with ajax image update 【发布时间】:2015-02-26 09:59:43 【问题描述】:

我正在使用 jquery guillotine 插件进行缩放和调整大小,并且我正在通过 ajax 调用更新图像 src,但是在更改时我没有得到坐标,基本 guillotine('getData') 没有返回任何内容,下面是我正在使用的代码。

jQuery(document).ready(function()
       picture = jQuery('#sample_picture');
       picture.guillotine('fit');
       picture.on('load', function()
        picture.guillotine(eventOnChange: 'guillotinechange');
        var img = jQuery(this);
        img.guillotine(eventOnChange: 'guillotinechange');
       // Remove any existing instance
       if (img.guillotine('instance')) img.guillotine('remove');
               img = jQuery('#sample_picture');
               img.guillotine(width: 387, height:594);
               img.guillotine('fit');
       if (! img.data('bindedBtns')) 
               img.data('bindedBtns', true)
               jQuery('#fit').click(function() img.guillotine('fit'); );
               jQuery('#zoom_in').click(function(  img.guillotine('zoomIn'); );
               jQuery('#zoom_out').click(function() img.guillotine('zoomOut'); );
       
       var data = img.guillotine('getData');
        if(data)
               for(var key in data) alert(data['key']); jQuery('#'+key).html(data[key]); 
        
        // Bind button actions
        jQuery('#rotate_left').click(function() img.guillotine('rotateLeft'); );
        jQuery('#rotate_right').click(function() img.guillotine('rotateRight'); );
        jQuery('#fit').click(function() img.guillotine('fit'); );
        jQuery('#zoom_in').click(function() img.guillotine('zoomIn'); );
        jQuery('#zoom_out').click(function() img.guillotine('zoomOut'); );
           // Update data on change
           img.on('guillotinechange', function(ev, data, action) 
          data.scale = parseFloat(data.scale.toFixed(4));
          for(var k in data)  jQuery('#'+k).html(data[k]); 
        );
      );
);

【问题讨论】:

【参考方案1】:

我猜您已经阅读了this answer,但您似乎只是粘贴了来自不同来源的冲突代码。

在第三行,您甚至在拥有插件实例之前就尝试适应图像,然后您在同一个图像上实例化它三次:

picture.guillotine(eventOnChange: 'guillotinechange') img.guillotine(eventOnChange: 'guillotinechange') img.guillotine(width: 387, height:594)

您还可以将按钮绑定到操作(旋转、缩放等)并解析两次数据。

我会尝试从 Guillotine 自己的 example 之类的更简单的东西开始,并且只有当您开始进行更复杂的工作时,例如通过 AJAX 加载图像并交换 src 属性。

【讨论】:

以上是关于带有 ajax 图像更新的 jquery guillotine 插件的主要内容,如果未能解决你的问题,请参考以下文章

使用 ajax、jquery 和 PHP 从数据库更新图像不起作用

带有 jquery 的 Django 模板:现有页面上的 Ajax 更新

带有 Ajax 的 jQuery FancyBox

通过 Jquery 使用 Ajax 调用函数/数据库更新

通过ajax调用更新行后使用jQuery对表进行排序

单击按钮时,如何触发 jquery datatables fnServerData 通过 AJAX 更新表?