Obiekt jako funkcja

0

Witam i zwracam się z prośba o pomoc. Jako, że zacząłem pracę przy tworzeniu stron męczy mnie ciągłe edytowanie styii menu pod różne rozdzielczości. Wpadłem więc na pomysł, aby napisać skrypt w js, który sam będzie ustawiał odpowiednie wartości CSS oraz animował menu na urządzeniach mobilnych. Pragnę zrobic coś na wzór uniteGallery, czyli podaje $("#menu") a następnie dopisuje nazwę funkcji wraz z parametrami np.

Response({  
 StartResponse : 960px,
FixedPosition : true
})

Jak się okazuje nie potrafię, gdy stworzę obiekt, konsola wywala błąd, że nie jest to funkcja, gdy stworzę funkcję to nie mogę podawać parametrów w ten sposób. Czy może mi ktoś podrzucić przykład lub stronę, która mi w tym pomoże ?

0

Pragnę zrobic coś na wzór uniteGallery, czyli podaje $("#menu")

$("#menu") to raczej notacja jQuery. To, że jest jakiś plugin uniteGallery, jeden z tysięcy, to nikomu nic nie powie, szczególnie w czasach kiedy jQuery straciło na popularności.

Jak się okazuje nie potrafię, gdy stworzę obiekt, konsola wywala błąd, że nie jest to funkcja,
gdy stworzę funkcję to nie mogę podawać parametrów w ten sposób. Czy może mi
ktoś podrzucić przykład lub stronę, która mi w tym pomoże ?

funkcje są obiektami w JS, więc można tak napisać.

function foo() {

}
foo.bar = function () {
}

foo();
foo.bar();

960px

błąd składni ci wywali, w JS nie można tak pisać. Mógłbyś zrobić albo 960, albo włożyć to w string "960px".

skrypt w js, który sam będzie ustawiał odpowiednie wartości CSS oraz animował menu na urządzeniach mobilnych

Prawdopodobnie wyważasz otwarte drzwi. Przecież choćby wspomniane jQuery ma różne funkcje do ustawiania wartości CSS czy animacji (nie mówiąc już o innych bibliotekach oraz o tym, że nawet bez żadnej biblioteki można wiele osiągnąć, bo to co dają nam przeglądarki obecnie jest często wystarczająco (polecam czytanie MDN i CSS-Tricks). Pytanie więc, co chcesz osiągnąć docelowo?

męczy mnie ciągłe edytowanie styii menu pod różne rozdzielczości.

tzn. męczą cię media query w CSS, czy jeszcze nawet do tego nie dotarłeś? ;) chociaż czasem i media query nie są potrzebne, bo można to załatwić innymi sposobami, np. używając procentów, czy vw/vh

0

Chcę zrobić funkcje, która wywołam na określonym elemencie DOM np.

$("#menu").NazwaFunkcji()

Ale nie potrafię tego zrobić i własnie na tym mi zależy :)

0

to moze

NazwaFunkcji(node);

?

0

Wiem, że jestem męczący, ale nie mogę tak zrobić, chcę wywołać funkcję na elemencie, żeby móc się do niego później odwoływać , a następnie wpisać okreslone parametry, np.

       $("#menu").ResponseMenu({
           StartFlex : 960,
           Relative : false,
           HideOnScroll : true
       });

0

Cholercie, dziękuje Wężu :)

0
Nexicoll napisał(a):

Wiem, że jestem męczący, ale nie mogę tak zrobić, chcę wywołać funkcję na elemencie, żeby móc się do niego później odwoływać , a następnie wpisać okreslone parametry, np.

       $("#menu").ResponseMenu({
           StartFlex : 960,
           Relative : false,
           HideOnScroll : true
       });

a to do parametru nie mozesz sie odwolywac?;)

0

Źle zaczynasz, weź się za jakiegoś Angulara albo Reacta, zrozum jak się robi OOP w Javascripcie (hihi) później gdy już zrozumiesz słówko class to zabierz się za Typescripta żeby zrozumieć różnicę między językiem słabo a mocno typowanym.

Następnie zabierz się za jakiś framework do programowania reaktywnego (np. RxJS) który pozwoli ci liznąć programowanie funkcyjne. Następnie poczytaj co to są funkcje wyższego rzędu i jak JS ma je zaimolementowane. Wtedy wróć tutaj i zadaj to pytanie jeszcze raz (albo i nie ;))

1 użytkowników online, w tym zalogowanych: 0, gości: 1