Kod
resizeObject: function(){
var elementWidth = ddEl.offsetWidth;
var elementHeight = dd.El.offsetHeight;
var links = dd.El.getElementsByTagName('a');
var keyLink = links[links.length-1];
keyLink.style.display = "none";
dd.El.style.border = '2px red dashed';
var resizeLink = links[links.length-2];
resizeLink.relatedElement = dd.El;
removeEventSimple(resizeLink,'cick',dd.resizeObject);
console.log('off - resize(837): '+dd.El.id);
addEventSimple(resizeLink,'click',dd.endResizeObject);
console.log('on - endResize(839): '+dd.El.id);
resizeLink.style.marginLeft = elementWidth/2+'px';
removeEventSimple(dd.El,'mousedown',dd.startDragMouse);
},
endResizeObject: function(){
var links = dd.El.getElementsByTagName('a');
var keyLink = links[links.length-1];
keyLink.relatedElement = dd.El;
keyLink.style.display = '';
dd.El.style.border = '0px';
var resizeLink = links[links.length-2];
resizeLink.relatedElement = dd.El;
removeEventSimple(resizeLink,'click',dd.endResizeObject);
console.log('off - endResize(853): '+dd.El.id);
addEventSimple(resizeLink,'click',dd.resizeObject);
console.log('on - resize(855): '+dd.El.id);
resizeLink.style.marginLeft = 0;
addEventSimple(dd.El,'mousedown',dd.startDragMouse);
},
var elementWidth = ddEl.offsetWidth;
var elementHeight = dd.El.offsetHeight;
var links = dd.El.getElementsByTagName('a');
var keyLink = links[links.length-1];
keyLink.style.display = "none";
dd.El.style.border = '2px red dashed';
var resizeLink = links[links.length-2];
resizeLink.relatedElement = dd.El;
removeEventSimple(resizeLink,'cick',dd.resizeObject);
console.log('off - resize(837): '+dd.El.id);
addEventSimple(resizeLink,'click',dd.endResizeObject);
console.log('on - endResize(839): '+dd.El.id);
resizeLink.style.marginLeft = elementWidth/2+'px';
removeEventSimple(dd.El,'mousedown',dd.startDragMouse);
},
endResizeObject: function(){
var links = dd.El.getElementsByTagName('a');
var keyLink = links[links.length-1];
keyLink.relatedElement = dd.El;
keyLink.style.display = '';
dd.El.style.border = '0px';
var resizeLink = links[links.length-2];
resizeLink.relatedElement = dd.El;
removeEventSimple(resizeLink,'click',dd.endResizeObject);
console.log('off - endResize(853): '+dd.El.id);
addEventSimple(resizeLink,'click',dd.resizeObject);
console.log('on - resize(855): '+dd.El.id);
resizeLink.style.marginLeft = 0;
addEventSimple(dd.El,'mousedown',dd.startDragMouse);
},
Chodzi o to, że na obiekcie jest przycisk (link) który na początku skryptu ma przypisane zdarzenie click do funkcji resizeObject. Po kliknięciu powinien jednak to przypisanie kasować i przypisywać funkcje endResizeObject. Jednak tego nie robi. Przynajmniej ja tego nie zauważyłem. Zamiast tego - obserwując co się dzieje w debugerze zobaczyłem, że po zakończeniu funkcji resizeObject i ponownym kliknięciu na link znowu wykonuje ta samą funkcję - zupełnie nie uruchamia funkcji endResizeObjcet.
Wydaje mi się (jednak nie jestem ekspertem w JS), że może to być problem z pozostałością czegoś w buforze zdarzeń, ale wtedy chyba powinienem coś zobaczyć wykonując skrypt krok po kroku.
Bardzo proszę o jakąś podpowiedź, gdzie jest błąd, bo już pomału zaczyna mnie to denerwować.