![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 23.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie! Mam na stronie tabelę gdzie zawartość można edytować. Każda komórka ma unikalny id. Chciałbym aby pole, które zostanie wedytowane (np onchange) zmieniło tło na wybrany. Myślałem zrobić to za pomocą skryptu, który będzie "nasłuchiwał" po załadowaniu się strony czy nie nastąpiło "onfocus". Tylko nie wiem czy dla przeglądarki samo kliknięcie w pole to już "onfocus" czy muszę mimo wszystko dopisać to zdarzenie w kodzie każdego pola?
Wolałbym posłużyć się już istniejącym id, które będzie przechwytywał skrypt w momencie edycji któregokolwiek pola. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zakładam że tabela zaweira <input> w każdej komórce. Poniższy skrypt podświetla na niebiesko komórkę która jest obecnie edytowana i na żółto gdy została edytowana. Mam nadzieję że taki efekt chciałeś osiągnąć.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A samo https://developer.mozilla.org/en/docs/Web/CSS/:focus nie wystarczy?
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście że wizualnie wystarczy, skrypt który pokazałem umożliwia rozbudowanie go o nie tylko dodanie/usunięcie klasy. Dodatkowo flaguje input jako zmieniony dzięki atrybutowi data co umożliwi Grandalf00owi np. wyświtlenie pod tabelą listy edytowanych inputów.
edit: :focus zadziała na background inputa nie komórki, z tego co pamiętam nie jest jeszcze możliwe w prosty sposób odwołać się do parenta w CSSie. Ten post edytował Puszy 17.08.2016, 13:13:43 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Ale autor raczej nie ma tam inputa. Jak w tytule - ma tabelę w elemencie edytowalnym, czyli edytuje wizualnie kod html, a dokładnie, bezpośrednio zawartość komórki.
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 23.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie jak napisał @trueblue - w moim przypadku chodzi dokładnie o komórkę w tabeli. :focus zmieni mi tylko kolor aktywnej komórki, a mi chodzi o to aby po edycji i np klinięciu w inną komórkę czy gdziekolwiek, komórka wyedytowana miała na stałe (do czasu przeładowania strony) inni kolor tła dla wiadomości użytkownika, że coś było zmienione.
Aktualnie komórki dziedziczą style, ale każda ma indywidualny ID. Ten post edytował Grandalf00 18.08.2016, 09:24:00 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Może coś z tego: http://stackoverflow.com/questions/8694054...contenteditable
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 23.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Czytałem o tym
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem. Nie chcesz dopisywać kolejnych zdarzeń do komórek, ale chciałbyś nasłuchiwać zdarzenie onChange na komórce.
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 23.01.2016 Ostrzeżenie: (0%) ![]() ![]() |
Nie chce - w sensie w kodzie np <td onchange... Jeżeli da się wykorzystać akutalny ID komórki, to wolałbym takie rozwiązanie.
Jeżeli faktycznie się nie da inaczej niż przez dodatkowy kod onchange dla komórki, to temat można zamknąć ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
W drugim poście (najwyżej punktowana odpowiedź) jest kod z wykorzystaniem DOMCharacterModified. Ze zdarzenia możesz wyciągnąć info czy nadrzędny tag dla węzła tekstowego to <td>.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 9.06.2025 - 06:09 |