• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JS funkcja która wykonuje się tylko raz.

Object Storage Arubacloud
+1 głos
430 wizyt
pytanie zadane 12 marca 2022 w JavaScript przez black86 Nowicjusz (210 p.)
var template = document.querySelector('#template');
var popup = document.querySelector('.popup-bg');

template.addEventListener('mouseleave', function(){
  popup.style.display = "block";
}, { once: true });

Witam. Funkcja, która wyświetla popup kiedy kursor myszki opuszcza element. Ma działać na każdej podstronie, ale ma zadziałać tylko raz. Problem w tym, że po wejściu na inna podstronę przeładuje sie i znowu zadziała.

Potrzebuję pomysłu jak dodać funkcje która zadziała raz i się nie przeładuje, lub umieścić element/templatke na całe okno, który nie będzie się przeładowywał po zmianie podstron i w funkcji odwołać sie do niego.

komentarz 14 marca 2022 przez Wiciorny Ekspert (270,170 p.)
edycja 14 marca 2022 przez Wiciorny

Nie, właśnie nie ... dlatego Java nie jest językiem skryptowym, nie jest językiem funkcyjnym a obiektowym, a można pisać funkcyjnie.
Tu chodzi o też struktury danych występujące w języku, poczytaj szerzej ...
ja robiłem podyplomowe studia z paradygmatów leksykalnych języków programowania
Jak będziesz chętny podrzucę Ci publikacje
Maszyną Turinga możesz udowodnić słuszność leksykalną języka obiektowego, a np. u JS to nie zachodzi
Myślisz pojęcie przynależności języka z tym, że kod możesz napisać "jako obiektowo" czyli zbudować z elementów obiektowych np stosując klase.

JavaScript NIE MA czegoś takiego jak "KLASA"  to co wystepuje w JS jako Class- to jest PROTOTYP który naśladuje ... np. zachowanie z wykorzystaniem konstruktora i właściowści

komentarz 15 marca 2022 przez Ehlert Ekspert (212,670 p.)

W JavaScript jestem spokojnie w stanie wykorzystać paradygmat obiektowy. Czy to wystarcza żeby nazwać go obiektowym? Moim zdaniem tak.

W zasadzie patrząc stricte na nomenklaturę, JS jest bardziej obiektowy niż Java i C#, które są klasowe laugh​​​​​

Równie dobrze zaraz może przyjść ktoś od Haskella i opluć js'a bo WCALE NIE JEST FUNKCYJNY.

Z drugiej strony bawi mnie to, że zawsze Javowcy spinają się o takie rzeczy xD

komentarz 15 marca 2022 przez Wiciorny Ekspert (270,170 p.)
edycja 15 marca 2022 przez Wiciorny
No własnie nie nawet w specyfikacji masz napisane, że specjalnie masz "prototypy klasy" a nie same klasy, bo nie jest to język obiektowy. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain

Idąc twoim tokiem myślenia, w każdym języku możesz napisać - według paradygmatu obiektowego, bo nawet jeśli nie masz "swojego kluczowego class" to mozesz zrobić :) samodzielnie typ. A własnie class nie istnieje w JS- jedynie istnieje prototyp

WIęc generalnie nawet idąc według najlepszego źródła i informacji tutaj
http://crockford.com/javascript/javascript.html
jakbyś studiował paradygmaty języków programowania, to rzeczą elementarną i wymaganą do kategoryzacji języka do zbioru jest spełnienie wszystkich warunków, które charakteryzuje podgrupa, a nie  wszystkich za wyjątkiem np 1.

Bo mając  język formalny danego "języka programowania" musimy z niego być wstanie odwzorować wszystkie TAUTOLOGIE dla zbioru należącego do paradygmatu, a tego nie zrobisz skoro nie masz np klasy, a "prototype based classes"
1
komentarz 15 marca 2022 przez Ehlert Ekspert (212,670 p.)

Czy to jest problem? Imo nie. Jako developer jestem użytkownikiem interfejsu, który dostarcza język.

A oburzanie się, że tylko Java jest prawilnie obiektowa jest przynajmniej śmieszne i przypomina dyskusje juniorów. Język to język. To, że pod jsowymi klasami latają obiekty linkowane prototypami jest jasne. Pytanie czy to coś zmienia?

komentarz 15 marca 2022 przez Wiciorny Ekspert (270,170 p.)
a ja nie mówię, że tylko jest, ale mówię stanowczo że JS nie jest nic więcej.
C++ jest obiektowy, Perl też jest obiektowy, nawet aktualnie chociaż nie wiem jak biblioteka ale PHP jest obiektowy, spełnia wymagania. Nie wiem też czemu widzisz moje oburzenie, ja się nie oburzam- bo ja tylko tłumacze dlaczego JS nie jest, a nie że "JAVA TYLKO JEST", tylko na jej podstawie pokazałem, żę w javie możesz pisać funkcyjnie [ od wersji 7/8 ] , ale totalnie nie jest językiem funkcyjnym

Jedyny język który znam- w którym tylko CZYSTO OBIEKTOWO można pisać nie da się funkcyjnie, skryptowo,  to Ruby, ale wiem że pewnie jeszcze 1- się znajdzie

2 odpowiedzi

+1 głos
odpowiedź 14 marca 2022 przez black86 Nowicjusz (210 p.)

Temat rozwiązany w ten sposób, może się komuś przyda w przyszłości. Dziękuję za pomoc :)

var popup = document.querySelector('.popup-bg');

if (!sessionStorage.getItem('popup')) {
  sessionStorage.setItem('popup', 'set');
  
  document.addEventListener('mouseleave', function(){
    popup.style.display = "block";
  });
}

 

0 głosów
odpowiedź 14 marca 2022 przez rszczepanski02 Obywatel (1,180 p.)
Możesz w localstorage przechować state: hasBeenPopupInduced: true / false
komentarz 14 marca 2022 przez VBService Ekspert (253,340 p.)

W opisanym przypadku przez OP, IMHO lepsze zastosowanie ma sessionStorage.

LocalStorage vs sessionStorage.

komentarz 16 marca 2022 przez rszczepanski02 Obywatel (1,180 p.)
Racja

Podobne pytania

0 głosów
1 odpowiedź 1,239 wizyt
pytanie zadane 18 grudnia 2017 w JavaScript przez xxkondzioxx15 Obywatel (1,440 p.)
0 głosów
1 odpowiedź 180 wizyt
pytanie zadane 7 lipca 2019 w JavaScript przez Brzeczy Początkujący (310 p.)
0 głosów
1 odpowiedź 197 wizyt
pytanie zadane 22 października 2018 w JavaScript przez Brzeczy Początkujący (310 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...