2013-09-06 33 views
6

Otrzymałem tę wiadomość, aby zareagować po kliknięciu toast, dlatego postanowiłem opublikować ją tutaj dla wszystkich.Rozszerz pojedyncze tworzenie toastru z opcjonalną funkcją niestandardową onclick

Gdy użytkownik kliknie na toast Nie zawsze ma się komunikat zniknie, ale w zależności od rodzaju wiadomości Chcę:

  • znikają.
  • Przekieruj użytkownika na inną stronę (x es/meetings/210) wyświetla okno dialogowe jquery (np. Pokazujące otrzymany SMS).

Korzystając z podstawowego zdarzenia kliknięcia, nie można wykryć toast kliknięcia. Jedynym sposobem obejścia tego problemu było dodanie linku do tostu i wykonanie przekierowania po kliknięciu przez użytkownika.

To, o co pytam, to sposób na uzyskanie aktualnego toastu kliknięć przez użytkownika, za pomocą podstawowego zdarzenia kliknięcia (ale może to wymagać więcej danych ukrytych w toastu, aby odzyskać go po kliknięciu, aby zrozumieć, co zrobić), albo przez dodanie do funkcji, która tworzy toast opcjonalnego zwrotnego do funkcji po kliknięciu, coś takiego:

toastr.error(
'body text', 
'header text', 
click: function() { 
console.log('you clicked on the error toaster') 
} 
); 

Dziękuję za to bardzo ładny bibliotece.

Odpowiedz

6

To już jest zbudowany. Możesz to zrobić na 2 sposoby: możesz pobrać obiekt jQuery zawierający element indywidualizujący toastr lub ustawić zdarzenie onclick dla pojedynczego toastu. Twój kod przechodzi przez funkcję dla 3. parm. Trzeci parm powinien być nadpisaniem opcji. Tak powinno to wyglądać tak:

toastr.error('body text', 'header text', 
    {onclick: function() {console.log('you clicked on the error toaster')}} 
); 
toastr.info('body text 1', 'header text', 
    {onclick: function() {console.log('you clicked on the info toaster n.1')}} 
); 
+0

Niestety, nie wyklucza to wiadomość z dissapearing ... W toastr.js po metody onClick nazywa metoda hideToast() jest następujący. Moim pomysłem było teraz zwrócenie wyniku boolowskiego z metody onClick, a jeśli jest to fałsz - aby zachować komunikat otwarty. Może jednak możesz zaproponować lepsze podejście? :)) – Anelook

+0

Myślę, że powinno to być również w dokumentach. Wiem, że to jest w podpisach, ale przykład na stronie github byłby miły - może powinienem edytować i zrobić PR :) –