Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 7 Dołączył: 3.02.2007 Ostrzeżenie: (0%)
|
Witam
Na wstępie chcialbym zaznaczyć, że stworzenie tego nie nastręcza mi problemów. Bardziej nie daje mi spokoju czy aby nie robię tego jakoś naokoło, nieoptymalnie. Być może istnieje jakiś wygodniejszy nieoczywisty dla mnie sposób? http://jsfiddle.net/WiruSSS/zPXUK/ |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%)
|
Wow... ok, z mojej strony powiem tak:
Cytat ..a jeszcze odnośnie var i przecinków. Tutaj chyba też jest kilka zdań na ten temat. Ja się trzymam konwencji Stoyana Stefanova. Zysk wydajności wg zasady deklaracji jak najbliżej użycia wg mnie jest na tyle znikomy, że wolę jednak bardziej czytelny dla mnie sposób, wpierw wszystko deklaruję, potem używam. tutaj mi akurat o wydajność nie chodziło... bo ja właśnie uważam deklarowanie zmiennych tam gdzie się pojawiają za bardziej czytelne w większości przypadków, są od tego wyjątki. Na temat Function.bind(context) czyli obiekt.click(pokaz.bind(this));... ta funkcja zwraca nową funkcję, która zawsze wykona się w kontekście tego co jest w zmiennej "context", czyli w twoim przypadku - "this". Chodzi ot to, że używając tego podejścia, które przedstawiłeś - gdybyś w którejś z tych funkcji anonimowych użył słowa this to miałbyś w nim pewnie obiekt DOM na którym jest wykonywany click. Używając funkcji "bind" w kontekście zawsze będziesz miał obiekt "slideMenu". Gdybyś miał coś takiego, bez używania "bind":
a z użyciem bind... wszystko by było ok (pomijając fakt, że 2 funkcje animate by sie ze sobą pogryzły, ale nie chodzi tu o funkcjonalność tylko logikę "bind"). Mi teraz Twój kod bardzo się podoba. JS to język programowania, a mówiąc po polsku nie bełkoczemy tylko mówimy do rzeczy (IMG:style_emoticons/default/smile.gif) . Przy okazji zauważ, że gdybyś z innego miejsca skryput chciał zamknąć "slideMenu" to wystarczy slideMenu.hideMenu(); EDIT: Jeszcze jedna sprawa: zamiast pisać w każdej metodzie (funkcji) "var menu = $(this).children();" mógłbyś to zapisać właśnie w obiekcie "slideMenu", ale do tego potrzebujesz konstruktora "SlideMenu".... aby każde menu było osobnym obiektem SlideMenu. No ale to już jak chcesz. Ten post edytował lukasz1985 12.09.2013, 19:46:56 |
|
|
|
WiruSSS Chowające się menu 12.09.2013, 13:23:08
kamil4u Robisz to dobrze - tak jak się powinno. Inne uwagi... 12.09.2013, 15:22:39
lukasz1985 Ja bym nie robił takich rzeczy z definicjami zmien... 12.09.2013, 16:06:57
WiruSSS ..hmm ..nie do końca się zrozumieliśmy ...to jest ... 12.09.2013, 16:45:40
WiruSSS ..no niestety z moim programowaniem tak jest, zajm... 12.09.2013, 20:49:29
lukasz1985 Kilka spraw odnośnie tego kodu:
- nie dajesz osob... 14.09.2013, 21:49:36
WiruSSS Cytat- nie CSS decyduje o tym po której stronie ma... 14.09.2013, 23:26:35
lukasz1985 Źle to robisz, nie powiem Ci czemu bo do tego wyst... 15.09.2013, 10:46:33
WiruSSS Ale to, że robię to inaczej niż zrobiłby to kto in... 15.09.2013, 17:54:54
PrinceOfPersia CytatDla jasności jeszcze raz napiszę: Czy da się ... 16.09.2013, 07:20:12
lukasz1985 Ok. To bawcie się w deklarowanie zmiennych konfigu... 17.09.2013, 10:32:40
PrinceOfPersia Zamiast się mądrzyć i odsądzać od czci i wiary inn... 17.09.2013, 11:33:12
lukasz1985 Funkcja jest obiektem w JS. Ale skoro tego nie wie... 17.09.2013, 11:39:56
PrinceOfPersia Właśnie w idealny sposób pokazałeś, że nie umiesz ... 17.09.2013, 11:49:32
lukasz1985 To po co wcześniej ta uwaga:
Cytatnie pisałem o o... 17.09.2013, 12:24:01
WiruSSS ...ale się gorąco zrobiło. W zasadzie skypt miał b... 17.09.2013, 18:16:55
lukasz1985 Jeśli chcesz mieć frajdę z tego co robisz - rób el... 18.09.2013, 12:12:30 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 01:08 |