Autor | Zpráva | ||
---|---|---|---|
Myšák Profil * |
#1 · Zasláno: 4. 3. 2015, 12:02:53
Čaute,
připravil jsem si takový rádoby jednoduchý JS objekt na odkrývání a skrývání hamburger menu a nelíbí se mi na tom ta poslední metoda, nedá se to napsat líp, mohl by mi to někdo fundovaný zkontrolovati? Děkujii. /* Mobile version ---------------------------------------------------------------------------------------------------- */ var hamburger = { init: function(el) { this.el = $(el); this.header = $('#header-mobile'); this.closeButton = $('.hamburger-close'); }, open: function(e) { this.header.fadeIn(); e.preventDefault(); }, close: function(e) { this.header.fadeOut(); e.preventDefault(); }, getElement: function(el) { return this[el]; } }; // init hamburger.init('.hamburger'); // open hamburger.getElement('el').click(function(e){ hamburger.open(e); }); // close hamburger.getElement('closeButton').click(function(e){ hamburger.close(e); }); |
||
Chamurappi Profil |
#2 · Zasláno: 4. 3. 2015, 15:12:38
Reaguji na Myšáka:
Jestli se ti nelíbí, že jde přes hamburger.getElement získat i metody init , open a close , můžeš na skladování elementů používat něco jiného než this . Třeba zřídit si hamburger.elements = {} …
Jinak já bych celé to zadání řešil nastavením třídy na společném rodiči, dva onclick y přímo v HTML, každý by měnil jednu className , zbytek bych nechal na CSS.
|
||
Myšák Profil * |
#3 · Zasláno: 4. 3. 2015, 15:29:33
Chamurappi:
Nešlo mi momentálně o to, že to jde lépe zapsat snažším JS v kombinaci s CSS. Spíš jsem chtěl překontrolovat logiku kódu (protože tohle je drobnost, až budu vytvářet komplexnější řešení, musím vědět jak na to, a nechytat špatné návyky). To, že jde získat i metody , ano, máš pravdu, ale klidně tam zřídím white words pole. Spíš se ta metoda nějak nezdá, jestli se to dá vůbec takhle řešit, vypadá to podle mě trošku divně - tím myslím return this[el]; .
Děkuji za názor. |
||
1Pupik1989 Profil |
#4 · Zasláno: 4. 3. 2015, 23:05:59
Tak nepoužívej getElement na vracení čehokoliv, ale napiš jí bez argumentů.
return this.el; Mezi námi je ta metoda jen obal k ničemu. Úplně klidně můžeš napsat hamburger.el . Dej té vlastnosti logický název a nemusíš to řešit. Nebo rozšiř jquery o metody ala hamburgerOpen
|
||
Časová prodleva: 10 let
|
0