![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam taką sytuację
Kod A=function(){ this.mA=false; . . d.onclick=onM;//d to DIV function onM(e){ . . if(this.mA) doSth();//gdzieś na zewnątrz } } teraz np. tak var obA=new A(); obA.mA=true; i klikam Kliknięcie Diva nie wywoła funkcji doSth(); ponieważ this zawiera obiekt HTMLDivElement a nie kontekst obiektu klasy A. Macie jakieś sugestie jak dostać się do kontekstu swojego obiektu z wnętrza obsługi zdarzenia? Szperając w sieci znalazłem możliwe rozwiązanie a mianowicie tu . Problem w tym, że opisywany przez autora Button to element HTML a więc taki, który posiada obsługę np. onclick a moja klasa nie. Należało by więc stworzyć klasę A w oparciu o klasę HTML a najlepiej DIV ale jak one się nazywają bo próba z HTMLDivElement nie powiodła się. Ewentualnie jakieś inne sugestie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Proponuję poczytać o this na blogu ferrante
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki - to działa choć niestety nie bardzo rozumiem dlaczego ale świeży jestem w programowaniu obiektowym przy pomocy javascript.
Trochę się jeszcze muszę podszkolić. Jeszcze raz wielkie dzięki. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki - to działa choć niestety nie bardzo rozumiem dlaczego ale świeży jestem w programowaniu obiektowym przy pomocy javascript. Ja dałem "gotowca" [nie gotowca a przykład rozwiązania problemu]. W polskiej sieci mało jest dobrych artykułów, ale akurat link co podał @vokiel też omawia ten problem z this (ale jak jesteś w tej tematyce początkujący nie koniecznie za pierwszym razem to zrozumiesz - przeczytaj to - w sumie jemu też należy się "pomógł")... a i w tamtym linku w komentarzu podałem link do tego forum gdzie masz przykład hermetyzacji i z pewnych powodów do funkcji setTimeout this musiało być zastąpione... i dalej jeśli chcesz to zrozumieć to w google szukaj artykułów pod hasłami "oop javascript" (angielskie są dobre - polskie w pierwszych wynikach nie najlepsze - ale też są)... i jeśli rozumiesz trochu dokumentację po angielsku to daję jeden dobry link: Douglas Crockford's Javascript - są tam też filmy instruktażowe - dobre materiały ale bez podstaw (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Trochę (kilka razy musiałem przeczytać- może słaby dzień) to zajęło ale zajarzyłem. Dla zainteresowanych http://www.crockford.com/javascript/private.html
Naprawiam też niedopatrzenie i daję "pomógł" dla @vokiel. Jeszce raz dzięki |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze warte przejrzenia http://blog.koszulinski.pl/kategoria/javascript/, warto zapoznać się ze specyficznymi aspektami javascript.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:34 |