Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Problem najprawdopodobniej z buforem zdarzeń w skrypcie
sebap123
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 26.08.2009
Skąd: Szczecin

Ostrzeżenie: (10%)
X----


Mam problem z pewnym skryptem, a raczej z dwoma jego funkcjami. Wyglądają one następująco:
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);
        },

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ć.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 13:39