mirror of https://github.com/luileito/jsketch.git
Fixed unwanted event queuing in memento plugin when reinstantiating or resetting a sketchable element.
This commit is contained in:
parent
1ce6e770eb
commit
65346a1a5f
|
|
@ -158,7 +158,6 @@
|
|||
if (!options.interactive) return opts;
|
||||
|
||||
var mc = new MementoCanvas(elem);
|
||||
|
||||
var callbacks = {
|
||||
init: function(elem, data) {
|
||||
data.memento = mc;
|
||||
|
|
@ -188,11 +187,15 @@
|
|||
}
|
||||
};
|
||||
|
||||
// Avoid re-attaching the same callbacks more than once.
|
||||
if (!plugin.isMementoReady) {
|
||||
// Event order matters.
|
||||
var events = 'init mouseup destroy'.split(" ");
|
||||
for (var i = 0; i < events.length; i++) {
|
||||
override(events[i]);
|
||||
}
|
||||
plugin.isMementoReady = true;
|
||||
}
|
||||
|
||||
// Expose public API for jquery.sketchable plugin.
|
||||
$.extend(availMethods, {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/*!
|
||||
* Memento plugin for jQuery sketchable | v1.1 | Luis A. Leiva | MIT license
|
||||
*/
|
||||
;(function(e){var a=function(m){var h=[];var g=-1;var i=this;function l(){if(g>0){g--;var o=new Image();o.src=h[g].image;o.onload=function(){j(this)}}}function k(){if(g<h.length-1){g++;var o=new Image();o.src=h[g].image;o.onload=function(){j(this)}}}function j(o){m.sketchable("handler",function(p,q){q.sketch.clear();q.sketch.graphics.drawImage(o,0,0)})}function n(o){if(o.ctrlKey){switch(o.which){case 26:if(o.shiftKey){i.redo()}else{i.undo()}break;case 25:i.redo();break;default:break}}}this.undo=function(){l();m.sketchable("handler",function(o,p){p.strokes=h[g].strokes.slice()})};this.redo=function(){k();m.sketchable("handler",function(o,p){p.strokes=h[g].strokes.slice()})};this.reset=function(){h=[];g=-1};this.save=function(){g++;if(g<h.length){h.length=g}m.sketchable("handler",function(o,p){h.push({image:o[0].toDataURL(),strokes:p.strokes.slice()})})};this.init=function(){e(document).off("keypress",n);e(document).on("keypress",n)};this.destroy=function(){e(document).off("keypress",n);this.reset()}};var d=e.fn.sketchable;var f=d("methods");function c(j,g){var o=j,p=e.extend(true,d.defaults,g);if(!p.interactive){return g}var m=new a(j);var l={init:function(i,q){q.memento=m;q.memento.save();q.memento.init()},mouseup:function(i,q,r){q.memento.save()},destroy:function(i,q){q.memento.destroy()}};function h(q){if(p&&p.events&&typeof p.events[q]==="function"){var i=p.events[q];p.events[q]=function(){var r=Array.prototype.slice.call(arguments,0);i.apply(o,r);l[q].apply(o,r)}}else{d.defaults.events[q]=l[q]}}var n="init mouseup destroy".split(" ");for(var k=0;k<n.length;k++){h(n[k])}e.extend(f,{undo:function(){m.undo()},redo:function(){m.redo()}});return d.defaults}var b=f.init;f.init=function(h){var g=c(this,h);return b.call(this,g)}})(jQuery);
|
||||
(function(e){var a=function(m){var h=[];var g=-1;var i=this;function l(){if(g>0){g--;var o=new Image();o.src=h[g].image;o.onload=function(){j(this)}}}function k(){if(g<h.length-1){g++;var o=new Image();o.src=h[g].image;o.onload=function(){j(this)}}}function j(o){m.sketchable("handler",function(p,q){q.sketch.clear();q.sketch.graphics.drawImage(o,0,0)})}function n(o){if(o.ctrlKey){switch(o.which){case 26:if(o.shiftKey){i.redo()}else{i.undo()}break;case 25:i.redo();break;default:break}}}this.undo=function(){l();m.sketchable("handler",function(o,p){p.strokes=h[g].strokes.slice()})};this.redo=function(){k();m.sketchable("handler",function(o,p){p.strokes=h[g].strokes.slice()})};this.reset=function(){h=[];g=-1};this.save=function(){g++;if(g<h.length){h.length=g}m.sketchable("handler",function(o,p){h.push({image:o[0].toDataURL(),strokes:p.strokes.slice()})})};this.init=function(){e(document).off("keypress",n);e(document).on("keypress",n)};this.destroy=function(){e(document).off("keypress",n);this.reset()}};var d=e.fn.sketchable;var f=d("methods");function c(j,g){var o=j,p=e.extend(true,d.defaults,g);if(!p.interactive){return g}var m=new a(j);var l={init:function(i,q){q.memento=m;q.memento.save();q.memento.init()},mouseup:function(i,q,r){q.memento.save()},destroy:function(i,q){q.memento.destroy()}};function h(q){if(p&&p.events&&typeof p.events[q]==="function"){var i=p.events[q];p.events[q]=function(){var r=Array.prototype.slice.call(arguments,0);i.apply(o,r);l[q].apply(o,r)}}else{d.defaults.events[q]=l[q]}}if(!d.isMementoReady){var n="init mouseup destroy".split(" ");for(var k=0;k<n.length;k++){h(n[k])}d.isMementoReady=true}e.extend(f,{undo:function(){m.undo()},redo:function(){m.redo()}});return d.defaults}var b=f.init;f.init=function(h){var g=c(this,h);return b.call(this,g)}})(jQuery);
|
||||
Loading…
Reference in New Issue