Feature request jak to ugryźć

Mało czasu

Czas goni, a rąk i głów i czasu do implementacji ficzerów brakuje. Co wtedy robić, od którego zacząć robić żeby było lepiej dla aplikacji i dla ludzi, a na końcu dla mnie i mojego portfela?

Zamiast zastanawiać się w ten sposób, może warto oddać głos użytkownikom? Niech oni klikają w system, system zbiera te informacje i w krótkim czasie można się dowiedzieć co było klikane najczęściej i właśnie na tym skupić kolejna działania rozwojowe.

Mój pomysł

Jak ja do tego podszedłem? W poprzednim wpisie pokazałem jak wygląda u mnie pasek pod każdym w rss (http://jaroslawstadnicki.pl/2016/04/font-awesome-w-mvc/).
Kod odpowiedzialny za wyświetlenie tego paska wygląda w taki sposób: Continue reading

Przepowiedziana obsługa elementów w jQuery.on

Jak jest

Zdarza się, nawet często się zdarza, że część strony na którą wszedł użytkownik będziemy podmieniać dynamicznie. Nie mam na myśli jakiegoś SPA, tylko odrobina dynamiczności. W tej dynamicznej części mamy jakieś element(y), który chcemy obsłużyć w skryptach. Aby nie przesyłać za każdym razem HTML i skryptów do obsługi, można na początku wypluć kod javascript i od razu przypiąć się na wydarzenia generowane przez takie eventy. Jak?

jQuery

W jQuery – które ciągle żyje i ma się dobrze, pomimo wielu-wielu-WIELU frameworków które powstały i upadły w tym czasie, posiada metodę on(). Umożliwia ona dopięcie się do elementu na jakieś wydarzenie, na przykład on(„click”,…..) Pozwala także na dołożenie dodatkowego filtra dla pod elementu (nie wiem jak lepiej mogę to słownie wytłumaczyć), $(„.container”).on(„click”, „.button”,…..). Oznacza to, że mogę powiedzieć: chce słuchać na przykład kliknięć z mojego kontenera, w dodatkowym warunkiem że źródłem kliknięć musi być jakiś guzik. O ile w momencie przypinania obsługi on-click, sam kontener musi już być, o tyle guzik (pod-element) może pojawić się później.

Przykłady

Continue reading

Zapis i odczyt data-attribute w DOM

Czasami trzeba zapisać coś w strukturze DOM, a potem odczytać te dane ponownie. I ponownie zapisać i odczytać i jeszcze raz. Z pomocą przychodzi wtedy nieśmiertelne jQuery. Znajdujemy wtedy interesujący nas element $(element) a następnie przy pomocy metody .data(„…”) odczytujemy wartość, lub .data(„…”,”…..”) zapisujemy wartość. jQuery lubi te dane sobie zapisać w swoim cache. Może się więc okazać, że każdy kolejny odczyt wskazywać będzie zawsze tą wartość, którą odczytaliśmy za pierwszym razem. Co wtedy? Są dwa sposoby; kiedyś udało nam się rozwiązać ten problem korzystając z innej metody, ale też jQuery; mianowicie .attr(„data-….”) i symetrycznie .attr(„data-…”, „…”) do odpisu i zaczytu (literówki!). Czasem i to nie wystarcza i wtedy należy sięgnąć po wanilie i skorzystać z getAttribute(„data-…”) oraz setAttribute(„data-…”,”…”) – te ostatnie zawsze działają. Jeden jedyny minusiczek, to taki: że jest to wyłom w spójności kodu, tzn. jeśli wszędzie używamy jQuery, a gdzieś wanilii, to dla części może to kłuć w oczy.

 

//EDIT (05.03.2016)
Przygotowałem przykład dostępny w jsfiddle jak i w giscie. Wygląda na to, w zmęczeniu przegapiłem pewne zależności lub coś działało jeszcze inaczej. Mianowicie problem z odczytem pojawia się wtedy gdy zapiszemy do data przy pomocy setAttribute a odczytamy za pomocą $.data, lub zapiszemy $.attr i odczytamy $.data. W tych przypadkach dane nie zostaną odświeżone. Sami sprawdźcie. Podziękowania dla @jarekkoziol za bycie ciekawskim.

GIST:

JSFiddle:
https://jsfiddle.net/jstadnicki/ydtry0c9/