Ponieważ właśnie rozmawialiśmy o wydarzeniach, teraz jest dobry moment, aby wspomnieć o niestandardowych wydarzeniach. Wszystkie wydarzenia, o których do tej pory mówiliśmy, są, że tak powiem, „prawdziwymi” wydarzeniami. Zdarzenia, które pochodzą z DOM na podstawie rzeczywistych wydarzeń, takich jak kliknięcie lub naciśnięcie klawisza. Te zdarzenia mogą być sztucznie „wyzwalane” w jQuery. Na przykład, aby „sfałszować” kliknięcie przycisku, możesz:
$("#some-button").trigger("click");
Następnie wszystkie programy obsługi kliknięć przypisane do tego przycisku zostaną uruchomione, tak jakby użytkownik naprawdę kliknął ten przycisk. Ale co by było, gdybyśmy:
$("#some-button").trigger("dance");
Co się wtedy stanie? „Taniec” nie jest „prawdziwym” wydarzeniem. Ale żaden błąd nie zostanie wyrzucony. Tak się składa, że prawdopodobnie nie ma żadnego „tańca” związanego z tym przyciskiem. Ale może być i to jest w istocie zdarzenie niestandardowe. Wydarzenie o nazwie, którą właśnie wymyślisz.
Dlaczego chcesz to zrobić? Głównie z powodów organizacyjnych. Być może chcesz oddzielić JavaScript, który obsługuje zdarzenia i akcje, oraz JavaScript, który obsługuje dane i czynności administracyjne. To bardzo rozsądne. Gdyby ten przycisk był być może przyciskiem „Zapisz ustawienia”, można by po prostu uruchomić zdarzenie niestandardowe o nazwie „zapisz ustawienia”, a gdzie indziej mieć moduł obsługi, który czeka na uruchomienie zdarzenia i faktycznie zapisuje dane. Zasadniczo to właśnie zrobiliśmy w przykładzie z filmu.
Innym przykładem użycia zdarzeń niestandardowych jest tworzenie ogólnych komponentów interfejsu użytkownika. Mówię o tym w tym wpisie na blogu.
Być może tworzysz efekt akordeonu jako składnik interfejsu użytkownika. Akordeon robi to, co wszystkie akordeony, otwiera i zamyka panele po kliknięciu / dotknięciu. Twój komponent interfejsu użytkownika robi to bardzo dobrze. Teraz programista, który używa tego akordeonu, może mieć specjalne i wyjątkowe rzeczy, które chcą z nim się wydarzyć. Powiedzmy, że używają harmonijki do ustawiania konta, a gdy użytkownik zamyka panel, chce zapisać dane z elementów formularza w tym panelu. Tradycyjny model może polegać na tym, że autor tego komponentu interfejsu użytkownika akordeonu oferuje funkcje wywołania zwrotnego, gdy taka akcja ma miejsce. Kiedy inicjalizujesz akordeon, przekazujesz funkcje zwrotne, które chcesz wywołać, gdy coś się wydarzy. To jedna droga do zejścia. Inną drogą byłoby automatyczne uruchamianie przez akordeon niestandardowych wydarzeń dla wszystkich odpowiednich działań, które wykonuje.Kiedy ten panel się zamyka, może odpalićpanelClosed
wydarzenie na samym elemencie akordeonu. Następnie programiści pracujący z nim mogliby po prostu powiązać się z tymi wydarzeniami. To tylko kolejna droga, którą możesz zejść ze względów organizacyjnych, która może być dość elegancka.