![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
Witam. Pisze sobie plugin do jQuery do wyświetlania okienek dialogowych i mam już coś takiego
... no i mam też problem. Otóż w 16 linii w/w kodu chcę aby to całe okienko dialogowe się zamykało, a jednak się nie zamyka. Doszedłem do wniosku, że this w tej linii odwołuje się do document, a nie do tego okienka. Próbowałem to zrobić poprzez ale i tak nie działa. Może wiecie w jaki sposób to rozwiązać? Z góry dziękuje |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%)
|
ano pasuje poczytać o this i "bindowaniu" funkcji/metod do innych obiektów...
rozwiązaniem tutaj jest np. przypisanie wcześniej this do jakiejś zmiennej lokalnej której później oczywiście nie możesz nadpisać w stylu: Kod if(options.closeOnEscape == true){ var that = this; $(document).keypress(function(event) { if(event.keyCode == 27) { $(that).hide(); } }); } jest to łatwiejsze w podstawowym zrozumieniu - jednak ja jakoś wolę przekazywać jako argument do zmiennej lokalnej i częściej stosowałem coś w stylu (function(argument1, argument2){return function(){/* tu mam zasięg do zapamiętanych argumentów - jeśli miały być raz użyte tylko to też dopiero tutaj je zerowałem*/}})(wartosc_1, wartosc_2); czyli w Twoim przypadku napisałbym w stylu: Kod if(options.closeOnEscape == true){ $(document).keypress((function(that){ return function(event) { if(event.keyCode == 27) { $(that).hide(); } } })(this)); } po prostu posłużyłbym się tutaj anonimową funkcją jako konstruktorem... oczywiście jeśli miałbyś mieć więcej takich konstruktorów to lepiej to przypisać do jakiejś zmiennej i wywołać jako funkcję zamiast obudowywać funkcję nawiasami i ją wywoływać... EDIT oczywiście tutaj this należy do tego obiektu pod który podpiąłeś metodę dialog.... Ten post edytował zegarek84 8.04.2011, 23:23:51 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%)
|
Dzięki wielkie. Pomogło:)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 06:05 |